BITPlan profiwiki Wiki profiwikiwiki http://profiwiki.bitplan.com/index.php/Main_Page MediaWiki 1.35.5 first-letter Media Special Talk User User talk BITPlan profiwiki Wiki BITPlan profiwiki Wiki talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Property Property talk Form Form talk Concept Concept talk smw/schema smw/schema talk Rule Rule talk GeoJson GeoJson talk Module Module talk Main Page 0 1 1 2015-02-01T08:05:32Z MediaWiki default 0 wikitext text/x-wiki <strong>MediaWiki has been successfully installed.</strong> Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list] * [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list] * [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language] 8e0aa2f2a7829587801db67d0424d9b447e09867 16 1 2015-06-18T05:04:54Z Wf 1 Replaced content with "siehe http://web.bitplan.com" wikitext text/x-wiki siehe http://web.bitplan.com 7dc9a38bb8a5a499a939c5b3dc6e36e616cba7f2 33 16 2015-10-23T07:57:06Z Wf 1 wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] f9ae98dec07655efd9575bfc29d9f54c24574a3c 34 33 2015-10-23T08:02:04Z Wf 1 wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] Get your Dockerized Profi-Wiki! 65fb224cdf1da57824dbf56ec49ab6aa8f5848e9 35 34 2015-10-23T08:03:22Z Wf 1 wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] Get your Dockerized Profi-Wiki! ProfiWiki is based on a {{Link|target=Docker|title=Dockerized}} {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} 00ba9b4815619fe1aed52d3764ed5c4644e12a05 38 35 2015-10-23T08:05:52Z Wf 1 wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] Get your Dockerized ProfiWiki here soon! ProfiWiki is based on a {{Link|target=Docker|title=Dockerized}} {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} e0013c66b9ce99c57664d6755e14d8861f7f9455 39 38 2015-10-23T08:06:12Z Wf 1 wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] Get your dockerized ProfiWiki here soon! ProfiWiki is based on a {{Link|target=Docker|title=Dockerized}} {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} 5efcb39b827bf71b6728b6a66c83540f826bac6b 40 39 2015-10-23T08:07:55Z Wf 1 wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] Get your dockerized ProfiWiki here soon! ProfiWiki is based on a {{Link|target=Docker|title=Dockerized}} {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} === The three Steps from MediaWiki to ProfiWiki === # {{Link|target=http://www.mediawiki.org}} is the basic infrastructure as used by millions of websites 59094cbfeaffc238f40142eda91c3a8f32b1b9da 41 40 2015-10-23T08:08:56Z Wf 1 wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] Get your dockerized ProfiWiki here soon! ProfiWiki is based on a {{Link|target=Docker|title=Dockerized}} === The three Steps from MediaWiki to ProfiWiki === # {{Link|target=http://www.mediawiki.org|title=MediaWiki}} is the basic infrastructure as used by millions of wiki sites # {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} is the c5a817ccd13e4b9fa8b1f3a776da97957fd4ca68 42 41 2015-10-23T08:09:57Z Wf 1 wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] === The ProfiWiki recipe === # {{Link|target=Docker}} # {{Link|target=http://www.mediawiki.org|title=MediaWiki}} is the basic infrastructure as used by millions of wiki sites # {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} is the b9220a2834f3b3fda064616288fb601562aa1ab6 43 42 2015-10-23T08:14:31Z Wf 1 /* The ProfiWiki recipe */ wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] === The ProfiWiki layer cake recipe === ==== Ingredients === # 1 small {{Link|target=Docker}} # 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} # 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} 240a649279b0e9f11b23484a240c5ca80a0fbdda 44 43 2015-10-23T08:15:01Z Wf 1 /* = Ingredients */ wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} 73ef40f2041d6b17571593aae910c5e5ef2fb942 45 44 2015-10-23T08:16:29Z Wf 1 /* The ProfiWiki layer cake recipe */ wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki}} 15b2139e5d25db32140ed74061ef40c579afdbba 46 45 2015-10-23T08:16:44Z Wf 1 /* Make the ProfWiki cake */ wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=https://github.com/BITPlan/docker-semanticmediawiki}} c33c0d1510886ab936d7a7e5158f15b9425a4252 47 46 2015-10-23T08:16:59Z Wf 1 /* Make the ProfWiki cake */ wikitext text/x-wiki == Welcome to ProfiWiki.de! == [[File:Profiwikiicon.png|128px]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}} f29ddb7ef13f73cd71b753f97c3d6ef8bcc59371 48 47 2015-10-23T08:17:50Z Wf 1 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}} 9501b8bae033f83a3d2134dc9ce3dab5f1ae3ae0 49 48 2015-10-23T08:18:01Z Wf 1 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}} 1f927efb5b710f385a2a1416ad0d889752ef7edd 50 49 2015-10-23T08:22:58Z Jl 2 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}} b4f6e4a8d7aed63393558935bb688230360d3775 52 50 2015-10-23T08:24:51Z Jl 2 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}} c03596ddfd7a2263dd1ab637678e840cccb32c29 File:BITPlanLogo2012.svg 6 2 2 2015-02-01T13:21:08Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:GraphViz 14 3 3 2015-06-18T04:20:08Z 91.40.111.165 0 wikitext text/x-wiki [[:Category:GraphViz]] contains pages created by the GraphViz extension. d7558ea59744c0f6d746167d98c9d79141c34cf6 Category:GraphViz mscgen 14 4 4 2015-06-18T04:21:53Z 91.40.111.165 0 wikitext text/x-wiki [[:Category:GraphViz mscgen]] contains pages created using the mscgen command.[[Category:GraphViz]] 4d7115d1e0d046083a3190155627fb1d3b6ac369 Category:GraphViz dot 14 5 5 2015-06-18T04:21:53Z 91.40.111.165 0 wikitext text/x-wiki [[:Category:GraphViz dot]] contains pages created using the dot command.[[Category:GraphViz]] c4b3cc59dbfa9617d9e149b61704bdff290e690a Category:GraphViz neato 14 6 6 2015-06-18T04:21:53Z 91.40.111.165 0 wikitext text/x-wiki [[:Category:GraphViz neato]] contains pages created using the neato command.[[Category:GraphViz]] 5fbe64eac659c9264a567353e6f2c8c027440f75 Category:GraphViz fdp 14 7 7 2015-06-18T04:21:53Z 91.40.111.165 0 wikitext text/x-wiki [[:Category:GraphViz fdp]] contains pages created using the fdp command.[[Category:GraphViz]] 6c2fa932bc5b75845295f63302aeb9d53257d2a9 Category:GraphViz sfdp 14 8 8 2015-06-18T04:21:53Z 91.40.111.165 0 wikitext text/x-wiki [[:Category:GraphViz sfdp]] contains pages created using the sfdp command.[[Category:GraphViz]] 7c8809315d94a4c810ccf7511af74096b97d9b97 Category:GraphViz circo 14 9 9 2015-06-18T04:21:54Z 91.40.111.165 0 wikitext text/x-wiki [[:Category:GraphViz circo]] contains pages created using the circo command.[[Category:GraphViz]] f7d832e0145e587c0272b9c9480004336d665b92 Category:GraphViz twopi 14 10 10 2015-06-18T04:21:54Z 91.40.111.165 0 wikitext text/x-wiki [[:Category:GraphViz twopi]] contains pages created using the twopi command.[[Category:GraphViz]] 906c45beed169f74791621baeec27eebc2f85323 File:File graph GraphVizExtensionDummy dot.gif 6 11 11 2015-06-18T05:04:53Z Wf 1 generated by the GraphViz [[Special:Version#Installed_extensions|extension]] from the [[File]] page wikitext text/x-wiki [[Category:GraphViz]][[Category:GraphViz dot]] d1f9cf68e993d59c3c9ce3627f507a743ad6138b File:File graph GraphVizExtensionDummy dot.jpg 6 12 12 2015-06-18T05:04:53Z Wf 1 generated by the GraphViz [[Special:Version#Installed_extensions|extension]] from the [[File]] page wikitext text/x-wiki [[Category:GraphViz]][[Category:GraphViz dot]] d1f9cf68e993d59c3c9ce3627f507a743ad6138b File:File graph GraphVizExtensionDummy dot.jpeg 6 13 13 2015-06-18T05:04:53Z Wf 1 generated by the GraphViz [[Special:Version#Installed_extensions|extension]] from the [[File]] page wikitext text/x-wiki [[Category:GraphViz]][[Category:GraphViz dot]] d1f9cf68e993d59c3c9ce3627f507a743ad6138b Docker goodies 0 16 17 2015-10-23T02:37:12Z Wf 1 Created page with "=== Remove untagged docker images === http://jimhoskins.com/2013/07/27/remove-untagged-docker-images.html <source lang='bash'> docker rmi $(docker images | grep "^<none>" | aw..." wikitext text/x-wiki === Remove untagged docker images === http://jimhoskins.com/2013/07/27/remove-untagged-docker-images.html <source lang='bash'> docker rmi $(docker images | grep "^<none>" | awk "{print $3}") </source> d10355b7bc18acfe3d97a809b6e8dd58e913b4c0 18 17 2015-10-23T02:40:29Z Wf 1 wikitext text/x-wiki === Remove untagged docker images === http://stackoverflow.com/a/28377696/1497139 <source lang='bash'> docker rmi -f $(docker images -f "dangling=true" -q) </source> 366cbd1ffe6f7e08baba38e4e87f9a5ca7b5e972 19 18 2015-10-23T02:50:27Z Wf 1 wikitext text/x-wiki === Attach to a running container === * http://askubuntu.com/questions/505506/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode === Remove untagged docker images === http://stackoverflow.com/a/28377696/1497139 <source lang='bash'> docker rmi -f $(docker images -f "dangling=true" -q) </source> === Support for build env variables === Upcoming feature in 1.9? * https://github.com/docker/docker/issues/6822 c4ee0cb8bab3741c29ae4d6b8a8d7610c6ae27be 20 19 2015-10-23T02:50:58Z Wf 1 /* Attach to a running container */ wikitext text/x-wiki === Attach to a running container === * http://askubuntu.com/questions/505506/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode * http://askubuntu.com/a/507009/129227 === Remove untagged docker images === http://stackoverflow.com/a/28377696/1497139 <source lang='bash'> docker rmi -f $(docker images -f "dangling=true" -q) </source> === Support for build env variables === Upcoming feature in 1.9? * https://github.com/docker/docker/issues/6822 07f758e9737d59da8cd185a110848b3280b9ac7c 21 20 2015-10-23T03:15:20Z Wf 1 wikitext text/x-wiki === Attach to a running container === * http://askubuntu.com/questions/505506/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode * http://askubuntu.com/a/507009/129227 <source lang='bash'> docker exec -it $containername /bin/bash </source> === Remove untagged docker images === http://stackoverflow.com/a/28377696/1497139 <source lang='bash'> docker rmi -f $(docker images -f "dangling=true" -q) </source> === Support for build env variables === Upcoming feature in 1.9? * https://github.com/docker/docker/issues/6822 52a1521c3d0ff493e40faf835223e6efe21fcbb9 22 21 2015-10-23T03:16:56Z Wf 1 wikitext text/x-wiki === Copy a file from a container to the host system === * http://stackoverflow.com/a/22050116/1497139 * docker cp <containerId>:/file/path/within/container /host/path/target === Attach to a running container === * http://askubuntu.com/questions/505506/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode * http://askubuntu.com/a/507009/129227 <source lang='bash'> docker exec -it $containername /bin/bash </source> === Remove untagged docker images === http://stackoverflow.com/a/28377696/1497139 <source lang='bash'> docker rmi -f $(docker images -f "dangling=true" -q) </source> === Support for build env variables === Upcoming feature in 1.9? * https://github.com/docker/docker/issues/6822 7a87182cc7472041320d3ad746dcdb9bdfe9d1f4 23 22 2015-10-23T03:17:31Z Wf 1 wikitext text/x-wiki === Copy a file from a container to the host system === * http://stackoverflow.com/a/22050116/1497139 <source lang='bash'> docker cp <containerId>:/file/path/within/container /host/path/target </source> === Attach to a running container === * http://askubuntu.com/questions/505506/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode * http://askubuntu.com/a/507009/129227 <source lang='bash'> docker exec -it $containername /bin/bash </source> === Remove untagged docker images === http://stackoverflow.com/a/28377696/1497139 <source lang='bash'> docker rmi -f $(docker images -f "dangling=true" -q) </source> === Support for build env variables === Upcoming feature in 1.9? * https://github.com/docker/docker/issues/6822 12a60c2c8a24fb6b387b0977a076a14fbde7ca97 Docker 0 17 24 2015-10-23T05:59:13Z Wf 1 Created page with "{{Tool |name=Docker |logo=File:DockerLogo.png |logourl=https://www.docker.com/sites/all/themes/docker/assets/images/logo.png |website=https://www.docker.com/ |wikipediaurl=htt..." wikitext text/x-wiki {{Tool |name=Docker |logo=File:DockerLogo.png |logourl=https://www.docker.com/sites/all/themes/docker/assets/images/logo.png |website=https://www.docker.com/ |wikipediaurl=https://en.wikipedia.org/wiki/Docker_%28software%29 |stackoverflow=http://stackoverflow.com/questions/tagged/docker |stackoverflowQuestionCount=6731 |category=Build |storemode=property }} {{GlossaryEntry |since=2015/09/25 |description={{Link|target=https://www.docker.com/|title=Docker}} ''is an open platform for building, shipping and running distributed applications. It gives programmers, development teams and operations engineers the common toolbox they need to take advantage of the distributed and networked nature of modern applications.'' |references=https://www.docker.com |lang=en |master=Docker |storemode=property }} == Virtual Machine versus Container == http://i.imgur.com/MJHfm1c.jpg == Introduction to Docker by {{Link|target=Solomon Hykes}} == <youtube>Q5POuMHxW-0</youtube> * Shipping code to the server is too hard * Docker uses separation of concerns (just like the Y-principle) to make shipping easier * Docker images are manipulated git style with ids, diffs, commits, pushs and pulls == Links == * https://twitter.com/docker == Installation == === Installation of Docker on Mac OS X === * https://docs.docker.com/installation/mac/ # Download Docker Toolbox # Install (e.g. DockerToolbox-1.8.3.pkg) # Either Use Kitematic Visual Management for Docker or Docker Quickstart Terminal Command Line Interface [[File:Clipboard20151017102651.png]] <source lang='bash'> ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ docker is configured to use the default machine with IP 192.168.99.100 For help getting started, check out the docs at https://docs.docker.com </source> === Installation of Docker on Linux === * see https://docs.docker.com/installation/ubuntulinux/ == Docker command examples == upgrade docker machine <pre> docker-machine upgrade default </pre> list running docker processes <pre> bash-3.2$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES </pre> get and start the latest ubuntu image <pre> docker run ubuntu </pre> see which images are available <pre> bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest 0a17decee413 4 days ago 188.4 MB bash-3.2$ </pre> start a bash shall in ubuntu <source lang='bash'> docker run -i -t ubuntu /bin/bash </source> modify the image by creating new directory <source lang='bash'> root@84506e084bb9:/#touch /test </source> look at processes again and check the difference of the image with the given container id <source lang='bash'> bash-3.2$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84506e084bb9 ubuntu "/bin/bash" 2 minutes ago Up 2 minutes pensive_wozniak bash-3.2$ docker diff 84506e084bb9 A /test </source> install some software <source lang='bash'> root@84506e084bb9:/#apt-get install php5 root@84506e084bb9:/#apt-get install mysql-server </source> commit the changes to images with the name "lamp" and check the image list again <source lang='bash'> bash-3.2$ docker commit 84506e084bb9 lamp 8ba719cd9b0eae589b70f6b6ddd567b4c20f997fc2d8f4c6feb313d73c2d5c3a bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE lamp latest 8ba719cd9b0e 20 seconds ago 349.5 MB ubuntu latest 0a17decee413 4 days ago 188.4 MB bash-3.2$ </source> <source lang='bash'> docker version Client: Version: 1.8.3 API version: 1.20 Go version: go1.4.2 Git commit: f4bf5c7 Built: Mon Oct 12 18:01:15 UTC 2015 OS/Arch: darwin/amd64 Server: Version: 1.8.3 API version: 1.20 Go version: go1.4.2 Git commit: f4bf5c7 Built: Mon Oct 12 18:01:15 UTC 2015 OS/Arch: linux/amd64 </source> == Useful scripts == === remove old unused docker containers === * http://stackoverflow.com/a/17237701/1497139 <source lang='bash'> docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs --no-run-if-empty docker rm </source> == Static content example == Use the nginx image from https://github.com/docker-library/docs/tree/master/nginx <source lang='bash'> docker run --name icon_html -v /Users/wf/Documents/workspace/com.bitplan.icons/src/main/resources/com/bitplan/icons:/usr/share/nginx/html:ro -d -p 8080:80 nginx </source> find out the ip address for the mapping (Mac OS X) <source lang='bash'> docker-machine env default export DOCKER_HOST="tcp://192.168.99.100:2376" </source> try out via <pre>http://192.168.99.100:8080/48x48/shadow/wrench.png</pre>http://192.168.99.100:8080/48x48/shadow/wrench.png == Dockerfile == The process can be automated using a {{Link|target=Dockerfile}} == Critics == http://www.boycottdocker.org/ == Docker book == <pdf>http://dockerbook.com/TheDockerBook_sample.pdf</pdf> [[Category:Examples]] 44e7460760c66277aa56b94e80fe232fa51befab Template:Tool 10 18 25 2015-10-23T06:01:06Z Wf 1 Created page with "<noinclude> <!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> T..." wikitext text/x-wiki <noinclude> <!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> This is the template {{Link|target=Template:Tool|title=Tool}}. It belongs to the concept/topic {{Link|target=:Concept:Tool}}<br> You may find examples for the use of this template via the {{Link|target=List of Tools}}. === Usage === ==== storemode subobject ==== <pre>{{Tool |name= |logo= |logourl= |website= |wikipediaurl= |stackoverflow= |stackoverflowQuestionCount= |category= |pollResult= |storemode=subobject }} </pre> ==== storemode property ==== <pre>{{Tool |name= |logo= |logourl= |website= |wikipediaurl= |stackoverflow= |stackoverflowQuestionCount= |category= |pollResult= |storemode=property }} </pre> ==== storemode none ==== <pre>{{Tool |name= |logo= |logourl= |website= |wikipediaurl= |stackoverflow= |stackoverflowQuestionCount= |category= |pollResult= |storemode=none }} </pre> ==== viewmode tableheader ==== <pre>{{Tool |name= |logo= |logourl= |website= |wikipediaurl= |stackoverflow= |stackoverflowQuestionCount= |category= |pollResult= |viewmode=tableheader }} </pre> ==== viewmode tablerow ==== <pre>{{Tool |name= |logo= |logourl= |website= |wikipediaurl= |stackoverflow= |stackoverflowQuestionCount= |category= |pollResult= |viewmode=tablerow }} </pre> ==== viewmode tablefooter ==== <pre>{{Tool |name= |logo= |logourl= |website= |wikipediaurl= |stackoverflow= |stackoverflowQuestionCount= |category= |pollResult= |viewmode=tablefooter }} </pre> ==== viewmode labelfield ==== <pre>{{Tool |name= |logo= |logourl= |website= |wikipediaurl= |stackoverflow= |stackoverflowQuestionCount= |category= |pollResult= |viewmode=labelfield }} </pre> === Source === <source lang='html4strict'> {{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Tool<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} {{#if:{{{?logo|}}}|"{{{?logo}}}" is logo of it <br>|}} {{#if:{{{?logourl|}}}|"{{{?logourl}}}" is logourl of it <br>|}} {{#if:{{{?website|}}}|"{{{?website}}}" is website of it <br>|}} {{#if:{{{?wikipediaurl|}}}|"{{{?wikipediaurl}}}" is wikipediaurl of it <br>|}} {{#if:{{{?stackoverflow|}}}|"{{{?stackoverflow}}}" is stackoverflow of it <br>|}} {{#if:{{{?stackoverflowQuestionCount|}}}|"{{{?stackoverflowQuestionCount}}}" is stackoverflowQuestionCount of it <br>|}} {{#if:{{{?category|}}}|"{{{?category}}}" is category of it <br>|}} {{#if:{{{?pollResult|}}}|"{{{?pollResult}}}" is pollResult of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Tool |Tool name={{{name|}}} |Tool logo={{{logo|}}} |Tool logourl={{{logourl|}}} |Tool website={{{website|}}} |Tool wikipediaurl={{{wikipediaurl|}}} |Tool stackoverflow={{{stackoverflow|}}} |Tool stackoverflowQuestionCount={{{stackoverflowQuestionCount|}}} |Tool category={{{category|}}} |Tool pollResult={{{pollResult|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !name!!logo!!logourl!!website!!wikipediaurl!!stackoverflow!!stackoverflowQuestionCount!!category!!pollResult {{!}}- |tablerow= {{!}}{{{name|}}}{{!}}{{!}}{{{logo|}}}{{!}}{{!}}{{{logourl|}}}{{!}}{{!}}{{{website|}}}{{!}}{{!}}{{{wikipediaurl|}}}{{!}}{{!}}{{{stackoverflow|}}}{{!}}{{!}}{{{stackoverflowQuestionCount|}}}{{!}}{{!}}{{{category|}}}{{!}}{{!}}{{{pollResult|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>logo={{#if:{{{logo|}}}|[[{{{logo|}}}]]|}}<br>logourl={{#if:{{{logourl|}}}|{{{logourl|}}}|}}<br>website={{#if:{{{website|}}}|{{{website|}}}|}}<br>wikipediaurl={{#if:{{{wikipediaurl|}}}|{{{wikipediaurl|}}}|}}<br>stackoverflow={{#if:{{{stackoverflow|}}}|{{{stackoverflow|}}}|}}<br>stackoverflowQuestionCount={{#if:{{{stackoverflowQuestionCount|}}}|{{{stackoverflowQuestionCount|}}}|}}<br>category={{#if:{{{category|}}}|{{{category|}}}|}}<br>pollResult={{#if:{{{pollResult|}}}|{{{pollResult|}}}|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Tool {{!}}- !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- !logo {{!}}&nbsp;{{#if:{{{logo|}}}|[[{{{logo|}}}]]|}} {{!}}- !logourl {{!}}&nbsp;{{#if:{{{logourl|}}}|{{{logourl|}}}|}} {{!}}- !website {{!}}&nbsp;{{#if:{{{website|}}}|{{{website|}}}|}} {{!}}- !wikipediaurl {{!}}&nbsp;{{#if:{{{wikipediaurl|}}}|{{{wikipediaurl|}}}|}} {{!}}- !stackoverflow link {{!}}&nbsp;{{#if:{{{stackoverflow|}}}|{{{stackoverflow|}}}|}} {{!}}- !no of stackoverflow questions {{!}}&nbsp;{{#if:{{{stackoverflowQuestionCount|}}}|{{{stackoverflowQuestionCount|}}}|}} {{!}}- !Category {{!}}&nbsp;{{#if:{{{category|}}}|{{{category|}}}|}} {{!}}- !pollResult {{!}}&nbsp;{{#if:{{{pollResult|}}}|{{{pollResult|}}}|}} {{!}}- {{!}}} }} }} [[Category:Tool]] </source> Click on "Edit" to edit the Source of this Template. </noinclude><includeonly>{{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Tool<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} {{#if:{{{?logo|}}}|"{{{?logo}}}" is logo of it <br>|}} {{#if:{{{?logourl|}}}|"{{{?logourl}}}" is logourl of it <br>|}} {{#if:{{{?website|}}}|"{{{?website}}}" is website of it <br>|}} {{#if:{{{?wikipediaurl|}}}|"{{{?wikipediaurl}}}" is wikipediaurl of it <br>|}} {{#if:{{{?stackoverflow|}}}|"{{{?stackoverflow}}}" is stackoverflow of it <br>|}} {{#if:{{{?stackoverflowQuestionCount|}}}|"{{{?stackoverflowQuestionCount}}}" is stackoverflowQuestionCount of it <br>|}} {{#if:{{{?category|}}}|"{{{?category}}}" is category of it <br>|}} {{#if:{{{?pollResult|}}}|"{{{?pollResult}}}" is pollResult of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Tool |Tool name={{{name|}}} |Tool logo={{{logo|}}} |Tool logourl={{{logourl|}}} |Tool website={{{website|}}} |Tool wikipediaurl={{{wikipediaurl|}}} |Tool stackoverflow={{{stackoverflow|}}} |Tool stackoverflowQuestionCount={{{stackoverflowQuestionCount|}}} |Tool category={{{category|}}} |Tool pollResult={{{pollResult|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !name!!logo!!logourl!!website!!wikipediaurl!!stackoverflow!!stackoverflowQuestionCount!!category!!pollResult {{!}}- |tablerow= {{!}}{{{name|}}}{{!}}{{!}}{{{logo|}}}{{!}}{{!}}{{{logourl|}}}{{!}}{{!}}{{{website|}}}{{!}}{{!}}{{{wikipediaurl|}}}{{!}}{{!}}{{{stackoverflow|}}}{{!}}{{!}}{{{stackoverflowQuestionCount|}}}{{!}}{{!}}{{{category|}}}{{!}}{{!}}{{{pollResult|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>logo={{#if:{{{logo|}}}|[[{{{logo|}}}]]|}}<br>logourl={{#if:{{{logourl|}}}|{{{logourl|}}}|}}<br>website={{#if:{{{website|}}}|{{{website|}}}|}}<br>wikipediaurl={{#if:{{{wikipediaurl|}}}|{{{wikipediaurl|}}}|}}<br>stackoverflow={{#if:{{{stackoverflow|}}}|{{{stackoverflow|}}}|}}<br>stackoverflowQuestionCount={{#if:{{{stackoverflowQuestionCount|}}}|{{{stackoverflowQuestionCount|}}}|}}<br>category={{#if:{{{category|}}}|{{{category|}}}|}}<br>pollResult={{#if:{{{pollResult|}}}|{{{pollResult|}}}|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Tool {{!}}- !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- !logo {{!}}&nbsp;{{#if:{{{logo|}}}|[[{{{logo|}}}]]|}} {{!}}- !logourl {{!}}&nbsp;{{#if:{{{logourl|}}}|{{{logourl|}}}|}} {{!}}- !website {{!}}&nbsp;{{#if:{{{website|}}}|{{{website|}}}|}} {{!}}- !wikipediaurl {{!}}&nbsp;{{#if:{{{wikipediaurl|}}}|{{{wikipediaurl|}}}|}} {{!}}- !stackoverflow link {{!}}&nbsp;{{#if:{{{stackoverflow|}}}|{{{stackoverflow|}}}|}} {{!}}- !no of stackoverflow questions {{!}}&nbsp;{{#if:{{{stackoverflowQuestionCount|}}}|{{{stackoverflowQuestionCount|}}}|}} {{!}}- !Category {{!}}&nbsp;{{#if:{{{category|}}}|{{{category|}}}|}} {{!}}- !pollResult {{!}}&nbsp;{{#if:{{{pollResult|}}}|{{{pollResult|}}}|}} {{!}}- {{!}}} }} }} [[Category:Tool]]</includeonly> ecfcbc2aabbe796800de73fdea34aa6aee926f04 Template:Link 10 19 26 2015-10-23T06:02:25Z Wf 1 Created page with "<noinclude> <!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT --> == template purpose == This is a Template for internal and external Links in WikiSon notatio..." wikitext text/x-wiki <noinclude> <!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT --> == template purpose == This is a Template for internal and external Links in WikiSon notation. === Motivation === In Mediawiki there are at least five different ways to use a link - we'd like to hide this complexity and add new functionality: # <pre>[[Main Page]]</pre>[[Main Page]] - internal link with no text # <pre>[[Main Page|Start Page]]</pre>[[Main Page|Start Page]] - internal link with text # <pre>[http://partner.bitplan.com] </pre>[http://partner.bitplan.com] - external link as footnote # <pre>[http://partner.bitplan.com BITPlan partner site] </pre>[http://partner.bitplan.com BITPlan partner site] - external link with text # <pre>http://partner.bitplan.com </pre>http://partner.bitplan.com - automatic external link == WikiSon Link == === Motivation === The Concept behind a link is <uml> Class Link { target title } ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager hide Circle skinparam note{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam package{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam usecase{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam activity{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam classAttribute{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam class{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } </uml> This calls for the WikiSon notation <pre> {{Link |target=sometarget |text=sometext }} </pre> === Link as WikiSon === Using the WikiSon Concept approach the Link Concept is represented via the Wiki [[:Category:Link]]<br> Especially there is a [[List of Links]] page available. === Importance === this is a fundamental concept should not be broken. Therefore {{Fixme|todo=This template needs to be protected soon|done=true}} {{Fixme|todo=This template needs to be distributed in the smartMediaWiki network of wikis|done=false}} === Examples === <pre> {{Link}} </pre> internal default link to Main Page {{Link}} <pre> {{Link|target=Main Page}} </pre> internal link to Main Page {{Link|target=Main Page}} <pre> {{Link|target=Main Page|title=Main Page}} </pre> internal link to Main Page with title {{Link|target=Main Page|title=Main Page}} <pre> {{Link|target=http://partner.bitplan.com}} </pre> external link {{Link|target=http://partner.bitplan.com}} <pre> {{Link|target=http://partner.bitplan.com|title=BITPlan Partner wiki}} </pre> external link with title {{Link|target=http://partner.bitplan.com|title=BITPlan Partner wiki}} === implementation === ==== Prerquisite ==== LocalSettings.php needs to have the StringFunctions enabled: <source lang='php'> # WF 2015-01-20 # allow string functions $wgPFEnableStringFunctions=true; </source> ==== Template source ==== The complexity of this template macro needs to be hidden ===== original Link Template ===== <pre> {{#set:Link target={{{target|}}} |Link title={{{title|}}} }}{{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | {{#set:Link targetUrl={{{target|}}}}}{{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }}| {{#set:Link targetPage={{{target|}}}}}{{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }}}}[[Category:Link]] </pre> ===== pretty printed Template macro ===== this version would unfortunately create unwanted newlines in the macro result <source lang='html4strict'> <!-- set concept attributes target (mandatory) and title (optional) --> {{#set:Link target={{{target|}}} |Link title={{{title|}}} }} <!-- check whether link is external or internal by comparing the firsts 4 chars with "http" --> {{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | <!-- in the http case (external link) set the targetURL property - it has the type "URL" and not "Text" like target or "Page" like targetPage --> {{#set:Link targetUrl={{{target|}}}}} <!-- display external link with our without title --> {{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }} | <!-- in the non-http case (internal link) set the targetPage property - it has the type "Page" and not "Text" like target or "Url" like targetUrl --> {{#set:Link targetPage={{{target|}}}}} <!-- display internal link with our without title --> {{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }} }} <!-- set the Category so that any page using this is displayed in this category --> [[Category:Link]] </source> ==== How the Link Macro works ==== The Link Macro checks whether the link is external or internal and displays the correct version. It sets the Link Concept's attributes by setting the correspond Semantic Media Wiki properties. it uses the following helper funcitons: * Substring: https://www.mediawiki.org/wiki/Extension:StringFunctions/en#.23sub: * #ifeq: https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/en#.23ifeq * #if: https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/en#.23if * #set: https://semantic-mediawiki.org/wiki/Help:Setting_values ===== Substring ===== <pre> {{#sub:string|start|length}} The start parameter, if positive (or zero), specifies a zero-based index of the first character to be returned. Example: {{#sub:Icecream|3}} returns cream. {{#sub:Icecream|0|3}} returns Ice. </pre> ===== if exists and non empty ===== <pre> {{#if: test string | value if test string is not empty | value if test string is empty (or only white space) }} </pre> ===== if equals ===== <pre> {{#ifeq: string 1 | string 2 | value if identical | value if different }} </pre> ===== setting Semantic values ===== <pre> {{#set:Has population=2,234,105 |Located in country=France |Has mayor=Bertrand Delanoë }} </pre> === SMW PageSchema use === ==== generated version of this template ==== <pre> < noinclude> Dies ist die Vorlage „Link“. Sie sollte im folgenden Format genutzt werden: < pre> {{Link |target= |title= }} </ pre> Klick auf „Bearbeiten“, um den Quelltext der Vorlage anzusehen. </ noinclude>< includeonly>{| class="wikitable" ! target | [[Link_target::{{{target|}}}]] |- ! title | [[Link_title::{{{title|}}}]] ... |} [[Kategorie:Link]] </ includeonly> </pre> [[Category:Template]]</noinclude><includeonly>{{#set:Link target={{{target|}}} |Link title={{{title|}}} }}{{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | {{#set:Link targetUrl={{{target|}}}}}{{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }}| {{#set:Link targetPage={{{target|}}}}}{{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }}}}</includeonly> 7ce6dc6744f61c007d7420599b460c33ad53091e File:Smiley.svg 6 20 27 2015-10-23T06:44:05Z Jl 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:DockerLogo.png 6 21 28 2015-10-23T06:45:56Z Jl 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Template:GlossaryEntry 10 22 29 2015-10-23T06:46:44Z Jl 2 Created page with "<noinclude> </noinclude><includeonly> </includeonly>" wikitext text/x-wiki <noinclude> </noinclude><includeonly> </includeonly> 16340203fde4377a2bc214cb067aaf5e28d86b55 File:Clipboard20151017102651.png 6 23 30 2015-10-23T06:48:06Z Jl 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Solomon Hykes 0 24 31 2015-10-23T06:54:08Z Jl 2 Created page with "https://www.linkedin.com/in/solomonhykes" wikitext text/x-wiki https://www.linkedin.com/in/solomonhykes edfd4953fe48d2188cd206ad8c90817ca90565e3 File:Profiwikiicon.png 6 25 32 2015-10-23T07:56:24Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Property:Tool wikipediaurl 102 26 36 2015-10-23T08:04:22Z Wf 1 Created page with "[[Has Type::URL]]" wikitext text/x-wiki [[Has Type::URL]] c236e4ac628decf10f4a2f09ddf35e3d6f8fd386 37 36 2015-10-23T08:04:36Z Wf 1 wikitext text/x-wiki [[Has type::URL]] 0e9f31c50b202d3371af28c7a81d4a3e46da49af File:MediaWikiLogo.png 6 27 51 2015-10-23T08:24:25Z Jl 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Main Page 0 1 53 52 2015-10-23T08:25:16Z Jl 2 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|128px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}} 1f7cc52c8282ed9b52cdbc71f42b0f6c2cbf897c 54 53 2015-10-23T08:26:16Z Wf 1 /* Make the ProfWiki cake */ wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|128px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] 8dfb2854e2d5f3f31a2ed7c8a5175467c3855ee8 56 54 2015-10-23T08:27:03Z Jl 2 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|128px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|128px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|128px]] ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] a8183fe295501fdcf6af035f88fd6854a7a1a53d 57 56 2015-10-23T08:27:37Z Wf 1 /* The ProfiWiki layer cake recipe */ wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|128px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|128px]] ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] ab0bda55344f22616638a591b5ec12dac2b759be 58 57 2015-10-23T08:28:21Z Wf 1 /* The ProfiWiki layer cake recipe */ wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|146px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|146px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|128px]] ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] 195d30cd6bf931949a602daaf03db5adbb4580c8 59 58 2015-10-23T08:28:51Z Wf 1 /* The ProfiWiki layer cake recipe */ wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|146px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|128px]] ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] c142d178c5169cc2cb7775613843b535e1e32128 60 59 2015-10-23T08:29:22Z Wf 1 /* The ProfiWiki layer cake recipe */ wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|50px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|128px]] ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] da2a21f04d2240301165a512cc7105c38aee1d75 61 60 2015-10-23T08:29:33Z Wf 1 /* The ProfiWiki layer cake recipe */ wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|128px]] ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] aa637d79f525ebc991ba03a51b12d7f63ce4be9e 62 61 2015-10-23T08:29:53Z Wf 1 /* The ProfiWiki layer cake recipe */ wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|100px]] ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] 40efc27997e719a2719084a44b38692116e92edd 63 62 2015-10-23T11:45:18Z Wf 1 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === What is a ProfiWiki === * Structured and unstructured content * Easy search * Quick data entry and linking * Team collaboration === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|100px]] ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] 2a7b7a92cd48a5c97b51018aed7ce9c46e558cd1 66 63 2015-10-24T11:59:32Z Wf 1 /* What is a ProfiWiki */ wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === What is a ProfiWiki ?=== * Structured and unstructured content * Easy search * Quick data entry and linking * Team collaboration === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|100px]] ==== Make the ProfWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] 89150ed76bd5a4742195af7879896fb706a72dea File:SemanticMediaWikiLogo.png 6 28 55 2015-10-23T08:26:22Z Jl 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Docker 0 17 64 24 2015-10-23T11:47:21Z Wf 1 /* Useful scripts */ wikitext text/x-wiki {{Tool |name=Docker |logo=File:DockerLogo.png |logourl=https://www.docker.com/sites/all/themes/docker/assets/images/logo.png |website=https://www.docker.com/ |wikipediaurl=https://en.wikipedia.org/wiki/Docker_%28software%29 |stackoverflow=http://stackoverflow.com/questions/tagged/docker |stackoverflowQuestionCount=6731 |category=Build |storemode=property }} {{GlossaryEntry |since=2015/09/25 |description={{Link|target=https://www.docker.com/|title=Docker}} ''is an open platform for building, shipping and running distributed applications. It gives programmers, development teams and operations engineers the common toolbox they need to take advantage of the distributed and networked nature of modern applications.'' |references=https://www.docker.com |lang=en |master=Docker |storemode=property }} == Virtual Machine versus Container == http://i.imgur.com/MJHfm1c.jpg == Introduction to Docker by {{Link|target=Solomon Hykes}} == <youtube>Q5POuMHxW-0</youtube> * Shipping code to the server is too hard * Docker uses separation of concerns (just like the Y-principle) to make shipping easier * Docker images are manipulated git style with ids, diffs, commits, pushs and pulls == Links == * https://twitter.com/docker == Installation == === Installation of Docker on Mac OS X === * https://docs.docker.com/installation/mac/ # Download Docker Toolbox # Install (e.g. DockerToolbox-1.8.3.pkg) # Either Use Kitematic Visual Management for Docker or Docker Quickstart Terminal Command Line Interface [[File:Clipboard20151017102651.png]] <source lang='bash'> ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ docker is configured to use the default machine with IP 192.168.99.100 For help getting started, check out the docs at https://docs.docker.com </source> === Installation of Docker on Linux === * see https://docs.docker.com/installation/ubuntulinux/ == Docker command examples == upgrade docker machine <pre> docker-machine upgrade default </pre> list running docker processes <pre> bash-3.2$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES </pre> get and start the latest ubuntu image <pre> docker run ubuntu </pre> see which images are available <pre> bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest 0a17decee413 4 days ago 188.4 MB bash-3.2$ </pre> start a bash shall in ubuntu <source lang='bash'> docker run -i -t ubuntu /bin/bash </source> modify the image by creating new directory <source lang='bash'> root@84506e084bb9:/#touch /test </source> look at processes again and check the difference of the image with the given container id <source lang='bash'> bash-3.2$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84506e084bb9 ubuntu "/bin/bash" 2 minutes ago Up 2 minutes pensive_wozniak bash-3.2$ docker diff 84506e084bb9 A /test </source> install some software <source lang='bash'> root@84506e084bb9:/#apt-get install php5 root@84506e084bb9:/#apt-get install mysql-server </source> commit the changes to images with the name "lamp" and check the image list again <source lang='bash'> bash-3.2$ docker commit 84506e084bb9 lamp 8ba719cd9b0eae589b70f6b6ddd567b4c20f997fc2d8f4c6feb313d73c2d5c3a bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE lamp latest 8ba719cd9b0e 20 seconds ago 349.5 MB ubuntu latest 0a17decee413 4 days ago 188.4 MB bash-3.2$ </source> <source lang='bash'> docker version Client: Version: 1.8.3 API version: 1.20 Go version: go1.4.2 Git commit: f4bf5c7 Built: Mon Oct 12 18:01:15 UTC 2015 OS/Arch: darwin/amd64 Server: Version: 1.8.3 API version: 1.20 Go version: go1.4.2 Git commit: f4bf5c7 Built: Mon Oct 12 18:01:15 UTC 2015 OS/Arch: linux/amd64 </source> == Useful scripts == {{Link|target=Docker goodies}} == Static content example == Use the nginx image from https://github.com/docker-library/docs/tree/master/nginx <source lang='bash'> docker run --name icon_html -v /Users/wf/Documents/workspace/com.bitplan.icons/src/main/resources/com/bitplan/icons:/usr/share/nginx/html:ro -d -p 8080:80 nginx </source> find out the ip address for the mapping (Mac OS X) <source lang='bash'> docker-machine env default export DOCKER_HOST="tcp://192.168.99.100:2376" </source> try out via <pre>http://192.168.99.100:8080/48x48/shadow/wrench.png</pre>http://192.168.99.100:8080/48x48/shadow/wrench.png == Dockerfile == The process can be automated using a {{Link|target=Dockerfile}} == Critics == http://www.boycottdocker.org/ == Docker book == <pdf>http://dockerbook.com/TheDockerBook_sample.pdf</pdf> [[Category:Examples]] 3441d14a0aece25d1183bce352b5c79ef92322bc Docker goodies 0 16 65 23 2015-10-23T11:47:43Z Wf 1 wikitext text/x-wiki === Copy a file from a container to the host system === * http://stackoverflow.com/a/22050116/1497139 <source lang='bash'> docker cp <containerId>:/file/path/within/container /host/path/target </source> === Attach to a running container === * http://askubuntu.com/questions/505506/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode * http://askubuntu.com/a/507009/129227 <source lang='bash'> docker exec -it $containername /bin/bash </source> === Remove untagged docker images === http://stackoverflow.com/a/28377696/1497139 <source lang='bash'> docker rmi -f $(docker images -f "dangling=true" -q) </source> === remove old unused docker containers === * http://stackoverflow.com/a/17237701/1497139 <source lang='bash'> docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs --no-run-if-empty docker rm </source> === Support for build env variables === Upcoming feature in 1.9? * https://github.com/docker/docker/issues/6822 2c3e0c2471cc9e677657347eec657aeb5bd98d78 WikiSon 0 29 67 2015-11-05T19:36:31Z WolfgangFahl 3 Pushed from BITPlan Partner. wikitext text/x-wiki == WikiSon - Wiki Simple Object Notation == [http://www.WikiSon.org WikiSon] follows the following principles: * simplicity * brevity * platform independence * problem space orientation * WikiSon is compatible with: * [https://www.mediawiki.org MediaWiki] - [https://www.mediawiki.org/wiki/Help:Templates Templates/Macros] * [https://semantic-mediawiki.org/ SemanticMediaWiki], especially [https://www.mediawiki.org/wiki/Extension:Page_Schemas SMW PageSchemas] and [https://github.com/WolfgangFahl/JSMW_PageSchema JSMW PageSchema]] * WikiData === compatible formats === It can be easily transformed from and to the formats: * csv * {{Link|target=http://www.json.org|title=json}} * {{Link|target=https://en.wikipedia.org/wiki/Resource_Description_Framework|title=rdf}} * {{Link|target=http://microformats.org/wiki/microformats2|title=html microformats}} * xml * ... you name it == Simple examples == === Books === <pre> {{ Book | Lord of the Rings | 0261102389 }} </pre> is a valid WikiSon sample for the Three Book Set Edition of the Book with the title "Lord of the Rings" by John R. R. Tolkien which happens to have the ISBN-10 number 0261102389. === Cities === <pre> {{City |name=Tokyo |id=JP-13 |localname=東京 |webpage=http://www.tokyo2020.jp |Population=9153953 |wikipedia_url=https://de.wikipedia.org/wiki/Tokio |average_income=56 |Country=Japan }} </pre> is a valid WikiSon sample for the Metro-City of "Tokyo" A possible human readable version of it would look like: {{City |name=Tokyo |id=JP-13 |localname=東京 |webpage=http://www.tokyo2020.jp |Population=9153953 |wikipedia_url=https://de.wikipedia.org/wiki/Tokio |average_income=56 |Country=Japan }} WikiSon asks for: <pre> {{City|name=Tokyo|id=JP-13}} {{City|name=Tokyo}} {{City|id=JP-13}} {{City|Tokyo|JP-13}} {{City|Tokyo}} {{City|JP-13}} </pre> to render all the same result. The preferred notation is: <pre> {{City|name=Tokyo|id=JP-13}} </pre> == Concepts and Properties == In the above example City is a {{Link|target=:Concept:Concept|title=Concept}}.<br> In the above example * name, * id * localname * webpage * ... are {{Link|target=:Concept:Property|title=Properties}}.<br> See the {{Link|target=:Concept:City|title=Description of the City concept}}. {{smartMediaWiki}} extends the meaning of Concept and Property beyond the definition of {{semanticMediaWiki}} === How do derive concepts and properties === Let's assume someone wants a software and tells you: ''"Could you please create a software for me that will show me * whether it rained yesterday in Berlin * whether the sun shines today in Munich * whether it snows tomorrow in Vienna "'' These sentences might lead you to three concepts: * City * Calendardate * Weather The customer has given you three examples for each concept: Cities: * {{City|Berlin}}<nowiki>{{City|Berlin}}</nowiki> * {{City|Munich}} * {{City|Vienna}} ... == Conventions == We are following the [[Y-Principle]] here and the A/T/R Bloodgroup approach of Siedersleben. === Concepts and Attributes === compare to [[Workdocumentation_2015-01-10]] <uml> skinparam class { BackgroundColor White ArrowColor black BorderColor #FF8000 FontColor black FontSize 12 FontName Technical } hide Circle namespace WikiSon { class Concept { name description } class Attribute { name value Concept type } Concept "1" -- "n" Attribute } </uml> <pre> {{<Concept> |<name>=<value> ... }} </pre> where value is of the type specified in the corresponding Attribute. ==== Concept ==== '''Concept''' has the synonms/ corresponding ideas in the problem space: * Thing * Subject * Topic * Name * Group * Definition * Class * Entity Typical solution space mappings are: * GUI Form * Database Table * Excel Sheet * Class * Java Class * PHP Class * CORBA Interface ==== Attribution ==== ===== Examples ===== In Berlin (Thema) hat es heute geregnet (Rhema). ==> implicit Concepts: City, heute->Date, geregnet-> Weather Did i understand you right that {{City|name=berlin}} {{Date|today}} {{Weather|rain}} and {{City|name=munich}} {{Date|tomorrow}} {{Weather|sun}} {{City|name=münster}} {{Date|yesterday}} {{Weather|snow}} are examples for what you'd like to cover with a computer program? Ich (Thema) habe gerade einen Anruf bekommen (Rhema). Es war einmal ein König (Rhema). Der (Thema) hatte drei Töchter (Rhema). Frage-Antwort-Paar: Was hat Papa gestern gemacht? (nur rhematisches Material bzw. kontextabhängige Thema-Rhema-Aufteilung) Papa hat gestern (Thema) das Auto gewaschen (Rhema, erfragte Information). Durch Verschiebung der Positionen von Thema und Rhema erhält der Satz eine starke Betonung oder emotionale Färbung: Was hat Papa gestern gemacht? Das Auto (Rhema) hat Papa (Thema) gestern gewaschen! ====== ... ======= Attributions done on Concepts can be perceived or ... '''Attribute''' has the synonms/ corresponding ideas in the problem space: * Feature * Property * Entry Typical solution space mappings are: * SMW triple * GUI Field * Database Row * COBOL Record * Excel Row * C# Property * Java Bean Field * CORBA Attribute === Identifier / Primary Keys === The first few attributes of a concept are considered to be the key attributes of a concept. E.g. in the WikiSon <pre> {{Person |name=Doe |firstname=John |email=john@doe.org |id=4711 |date of birth=1972-05-06 }} </pre> name and firstname naturally but not unambigiously identify john doe. Technically the email and id are much better suited as unique identifiers. The date of birth is just a regular attribute. By convention in this example id would be the technical primary key. === Primary key convention === The first attribute with a name found in the following list: * id * oid * uid * uuid * {{Link|target=List of known Technical Primary Key Attribute Names|title=...}} is considered to be the technical primary key. All attributes declared before such a technical primary key are considered to form natural (effective in SAPese) keys when the values are concatenated using "," as a delimiter. ==== Examples ==== <pre> {{Person |name=Doe |firstname=John |email=john@doe.org |id=4711 |date of birth=1972-05-06 }} </pre> The primary key is "john@doe.org" and the natural key "Doe,John" <pre> {{Person |firstname=John |name=Doe |id=4711 |email=john@doe.org |date of birth=1972-05-06 }} </pre> The primary key is "4711" and the natural key "John,Doe" == Configuration == === Configuration Overview === To map Concepts in the Problem Space to Solutions one or more configurations per Concept are necessary.<br> Think of * resource forks * Java Profiles * UML Sterotypes/Taggedvalues The configuration has details on what the solution should look like. E.g. the Concept concept might have the following internationalization Configurations: {{Configuration |name=Internationalisierung des Concept Konzeptes für die deutsche Sprache |id=i18nConfiguration_Concept_de |concept=Concept }} ==== UML diagram describing the Configuration ==== <uml> skinparam class { BackgroundColor White ArrowColor black BorderColor #FF8000 FontColor black FontSize 12 FontName Technical } hide Circle namespace WikiSon { class Concept { name } class SolutionConcept { id } class Attribute { name value Concept type } class Configuration { Concept concept } Concept "1" -- "n" Attribute Configuration "1" -- "n" Attribute SolutionConcept <|-- Configuration Concept <|-- SolutionConcept } </uml> === Synonyms aliases ==== == Mapppings == {{Link|target=Mapping WikiSon to SemanticMediaWiki}} == Mapping WikiSon to WikiData == * https://www.wikidata.org/wiki/Wikidata:Glossary#Item == Mapping WikiSon to UML == === Corresponding UML approach for "Concept" === <uml> skinparam class { BackgroundColor White ArrowColor black BorderColor #FF8000 FontColor black FontSize 12 FontName Technical } class UMLClass { name } class StructuralFeature { name value type } UMLClass "1" -- "* structural features" StructuralFeature hide UMLClass circle hide StructuralFeature circle </uml> === Example: the City Concept described in UML === <uml> skinparam classBackgroundColor white skinparam classBorderColor #FF8000 skinparam classFontColor black skinparam classFontSize 12 skinparam classFontName Arial skinparam NoteBorderColor #FF8000 skinparam NoteBackgroundColor #FFFFF0 hide circle title City note as CityDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as CityNote I represent a City like Berlin, New York or Tokyo end note CityNote ..City Class City <<Category>> { Text local Name URL website Number Pop. URL wikipedia url Number average income T$/year } City -- Country City -- Mayor hide <<Category>> circle </uml> === Mapping a Concept to a UML Class === * the name of a concept is used as a UML Class name * the attributes of a concept are mapped to UML attributes aka structural features * the name of an attribute is mapped to an UML attribute name * the type of an attribute is mapped to a UML type starting (bootstrapping) from a {{Link|target=Wikison generic type system}} === UML Attributes / Associations and Inheritance === In UML # Attributes # Associations # Inheritance are three different concepts. In WikiSon we consider all three of them are handled as attributes. ==== Regular Attributes and 1:1 Associations ==== If a concept has another concept as it's attribute this corresponds to :1 UML relations/association or UML inheritance between the two concepts. The UML differentiation of attribute, association, inheritance is not essentially necessary on the problem side. On the solutions side it will make a difference when displaying the data. There may be different solution modes: # displaying the attributes concept's attributes directly (this is like the UML attribute concept) # displaying the attribute concept as a link (this is like the UML association concept) # optionally hiding and showing the attributes's concepts attributes and making them available directly in the scope of the concept (this is like the UML inheritance concept) ==== Examples ==== ===== Attribute ===== <uml> class City{ name Country myCountry } </uml> myCountry is simply an attribute of City of type Country. ==== 1:1 association ==== <uml> class MetroCity { } class City{ name } class Country { name } City "1" -- "1 myCountry" Country City "1 myCity" -- "1" MetroCity </uml> Country is simply handled like an attribute of City. metrocity.myCity.myCountry.name will show the name of the country of the MetroCity in typical solution environments. What is the WikiSon equivalent? Most UML knowlegeable people would be inclined to fix the above model and put an "n" on the City side of the Country-City association. ===== Inheritance ===== <uml> class MetroCity { } class City{ name } class Country { name } City "1" -- "1 myCountry" Country City <|-- MetroCity </uml> metrocity.name will show the name of the metrocity metrocity.myCountry.name will show the country of the metrocity ==== 1:n and n:m relations ==== * If I am a concept and another concept has a an attribute with me as a type than there is a 1:n relation between me and the other concept. * If additionaly I do have an attribute with the other concept as a type than there is a n:m relation between me and the other concept. {{PartnerPage}} 878fc2410670afe2ee6c5efc18e52c28fd97a766 SMW Types 0 30 68 2015-11-05T19:44:31Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:30Z wikitext text/x-wiki {{SMW_Type |documentation=Holds URIs, but has some technical differences during export compared to the 'URL' type |type=Annotation URI |typepage=Special:Types/Annotation_URI |helppage=https://semantic-mediawiki.org/wiki/Help:Annotation_URI |storemode=subobject }} {{SMW_Type |documentation=Holds boolean (true/false) values |type=Boolean |typepage=Special:Types/Boolean |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Boolean |javaType=boolean |storemode=subobject }} {{SMW_Type |documentation=Holds technical, pre-formatted texts (similar to type Text) |type=Code |typepage=Special:Types/Code |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Code |javaType=String |storemode=subobject }} {{SMW_Type |documentation=Holds particular points in time |type=Date |typepage=Special:Types/Date |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Date |javaType=java.util.Date |storemode=subobject }} {{SMW_Type |documentation=Holds e-mail addresses |type=Email |typepage=Special:Types/Email |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Email |storemode=subobject }} {{SMW_Type |documentation=Holds coordinates describing geographic locations |type=Geographic coordinate |typepage=Special:Types/Geographic_coordinate |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Geographic_coordinate |storemode=subobject }} {{SMW_Type |documentation=Holds integer and decimal numbers, with an optional exponent |type=Number |typepage=Special:Types/Number |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Number |storemode=subobject }} {{SMW_Type |documentation=Holds names of wiki pages, and displays them as a link |type=Page |typepage=Special:Types/Page |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Page |storemode=subobject }} {{SMW_Type |documentation=Holds values that describe quantities, containing both a number and a unit |type=Quantity |typepage=Special:Types/Quantity |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Quantity |storemode=subobject }} {{SMW_Type |documentation=Allows saving compound property values that consist of a short list of values with fixed type and order |type=Record |typepage=Special:Types/Record |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Record |storemode=subobject }} {{SMW_Type |documentation=Holds international telephone numbers based on the [https://tools.ietf.org/html/rfc3966 RFC 3966 standard] |type=Telephone number |typepage=Special:Types/Telephone_number |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Telephone_number |storemode=subobject }} {{SMW_Type |documentation=Holds temperature values (similar to type Quantity) |type=Temperature |typepage=Special:Types/Temperature |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Temperature |storemode=subobject }} {{SMW_Type |documentation=Holds text of arbitrary length |type=Text |typepage=Special:Types/Text |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Text |javaType=String |storemode=subobject }} {{SMW_Type |documentation=Holds URIs, URNs and URLs |type=URL |typepage=Special:Types/URL |helppage=https://semantic-mediawiki.org/wiki/Help:Type_URL |javaType=java.net.URI |storemode=subobject }} [[Category:SMW_Type]] 67e69243bd00941954d9c756728f19e0f9fef41d SiDIFTemplates 0 31 69 2015-11-05T19:44:34Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:32Z wikitext text/x-wiki __TOC__ == Overview == This page contains {{sidif}} templates. These templates can be used as a template for a {{Link|target=Template:Wikitask}}. For convenience there is a template {{Link|target=Template:TopicWikitasks}} that creates a set of wikitasks for some of the templates below. == Templates == === category === <source lang='java' id='category' cache='true'> @include(wiki.SiDIFTemplates.defs) @// macro to create pageschema from simela triples @def pageschema(Topic topic) { @escape("xml") { <PageSchema> <semanticforms_Form name="@topic.name"> <standardInputs freeTextLabel="Free text"/> </semanticforms_Form> <Template name="@topic.name" format="standard"> @for (Property property:topic.propertiesByIndex()) { <Field name="@property.name"> <semanticforms_FormInput> <InputType>text</InputType> </semanticforms_FormInput> <semanticmediawiki_Property name="@(topic.name) @(property.name)"> <Type>Text</Type> </semanticmediawiki_Property> </Field> } </Template> </PageSchema> } } @// generate the category for the given topic @def category(Topic topic) { __NOTOC__ @// show the wikiDocumentation for this category {{#ask: [[Topic name::@(topic.name)]] | ?Topic wikiDocumentation= | mainlabel=-}} @(topic.pluralName) may be added and edited with the form [[has default form::@(topic.name)]] * [[List of @(topic.pluralName)]] <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> @topic.name @(i18n("description")) <div class="mw-collapsible-content"> @uml("uml",topic) * [[Help:@topic.name]] * [[Concept:@topic.name]] * [[:Template:@topic.name]] * [[:Form:@topic.name]] === Properties === @for (Property property:topic.propertiesByIndex()) { * [[Property:@(topic.name) @(property.name)]] } </div> </div> } @category(contextSetting.getMaintopic()) </source> === listof === <source lang='java' id='listof' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the list of page for the given topic @def listof(Topic topic) { __NOCACHE__ @topicheader(topic) == @topic.pluralName == @("{{")#ask: [[Concept:@topic.name]] @for (Property property:topic.propertiesByIndex()) { | ?@topic.name @(property.name) = @property.name } @("}}") {{#forminput:form=@topic.name|button text=add @topic.name}} <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> === SiDIF === <div class="mw-collapsible-content"> @("{{")#ask: [[Concept:@topic.name]] | ?#=pageid @for (Property property:topic.propertiesByIndex()) { | ?@topic.name @property.name = @property.name } | mainlabel=- | format=template | named args=yes | template=@topic.name | userparam=sidif | limit=300 @("}}") </div> </div> [[:Category:@topic.name]] } @listof(contextSetting.getMaintopic()) </source> === concept === <source lang='java' id='concept' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the given topic as a concept @def topic(Topic topic) { __NOCACHE__ @("{{")Topic |name=@topic.name |pluralName=@if (topic.pluralName) {@(topic.pluralName)} else { @(topic.name)s } |icon=@topic.icon |iconUrl=@topic.iconUrl |documentation=@topic.documentation |wikiDocumentation=@topic.wikiDocumentation |defaultstoremode=@topic.defaultstoremode |cargo=@topic.cargo |context=@topic.context |storemode=property @("}}") {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Topic/{{FULLPAGENAME}}|title=edit @topic.name}}<br> @("{{")Topic |viewmode=masterdetail |storemode=none @("}}") {{#forminput:form=Property|button text=add Property}} === Documentation === @topic.wikiDocumentation @uml("uml",topic) @("{{")#concept: @if (topic.conceptProperty) { [[@(topic.name) @(topic.conceptProperty.name)::+]] } else { [[Category:@topic.name]] } |@(topic.pluralName) @seealso(topic) @("}}") [[Category:@topic.name]] } @topic(contextSetting.getMaintopic()) </source> === properties === <source lang='java' id='properties' cache='true'> @include(wiki.SiDIFTemplates.defs) @// properties for a specific Topic @def property(Topic topic, Property property) { @("{{")Property |name=@property.name |documentation=@property.documentation |type=Special:Types/@property.type |label=@property.label |primaryKey=@property.primaryKey |mandatory=@property.mandatory |uploadable=@property.uploadable |size=@property.size |index=@property.index |sortPos=@property.sortPos |defaultValue=@property.defaultValue |inputType=@property.inputType |allowedValues=@property.allowedValues @{ String topicWithConcept=topic.pageid; if (topicWithConcept.startsWith("Konzept:")) { topicWithConcept=topicWithConcept.replace("Konzept:","Concept:"); } if (!topicWithConcept.startsWith("Concept:")) { topicWithConcept="Concept:"+topicWithConcept; } } |topic=@(topicWithConcept) |storemode=property @("}}") [[Has type::@property.type]] This is a Property with type @("{{#show: {{FULLPAGENAMEE}} | ?Property type#- }}") } @// properties for the given topic @def properties(Topic topic) { == properties of @(topic.name) == @for (Property property:topic.getProperties()) { === [[Property:@(topic.name) @(property.name)]] === <pre> @(property(topic,property)) </pre> } } @properties(contextSetting.getMaintopic()) </source> === instances === <source lang='java' id='instances' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @// here some java code is declared and executed @// the resulting variables can be used as template variables later @{ TripleQuery query=tripleStore.query(); TripleQuery topics=query.query(null,"isA","Topic"); String maintopic=wikiTask.getParams(); } @def wikison(TripleQuery query,String topicName, String name) { @("{{")@topicName @{ TripleQuery properties=query.query(name,null,null) } |name=@name @for (Triple property:properties.getTriples()) { |@property.getPredicate()=@property.getObject() } |storeMode=subobject @("}}") } @def wikison1toN(TripleQuery query,String topicName,String link,String linkTopicName) { @{TripleQuery instances=query.query(null,"isA",topicName) } @for (Triple instance:instances.getTriples()) { @wikison(query,topicName,instance.getSubject().toString()) @{TripleQuery linstances=query.query(null,link,instance.getSubject().toString()) } @for (Triple linstance:linstances.getTriples()) { @wikison(query,linkTopicName,linstance.getSubject().toString()) } } } @wikison1toN(query,maintopic,"answer","ZAnswer") [[Category:@maintopic]] </source> === form === <source lang='java' id='form' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the form for the given topic @def form(Topic topic) { <noinclude> This is the @("{{smartMediaWiki}}")-Form for "@topic.name". Create a new @topic.name by entering a new pagename for a @topic.name into the field below. If you enter an existing @topic.name pagename - you will edit the @topic.name with that pagename. @{ String multiple=""; if ("subobject".equals(topic.defaultstoremode)) { multiple="|multiple"; } } @("{{")#forminput:form=@topic.name|values from concept=@(topic.name)@("}}") </noinclude><includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> @formtemplate(topic,multiple) @("'''Freitext:'''") @("{{{standard input|free text|rows=10}}}") @("{{{standard input|summary}}}") @("{{{standard input|minor edit}}} {{{standard input|watch}}}") @("{{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}}") </includeonly> }@// avoid newline @form(contextSetting.getMaintopic()) </source> === template === <source lang='java' id='template' cache='true'> @include(wiki.SiDIFTemplates.defs) @// show the given property Label @def String propertyLabel(Property property) { if ((property.label!=null) && (!"".equals(property.label.trim()))) {return property.label;} else {return property.name;} } @// show the given Property @def showProperty(Property property) { @{ String linkPre=""; String linkPost=""; String namespace=""; if ((property.type!=null) && (property.type.endsWith("Page"))) { linkPre="[[";linkPost="]]";} // do not do namespace handling at this time // use map namespace from mediawik-japi! // if (property.namespace!=null) { namespace=property.namespace+":";} }@{{#if:{{{@(property.name)|}}}|@(linkPre)@(namespace)@("{{{")@(property.name)@("|}}}")@(linkPost)|}} } @// set the given Property @def setProperty(Property property){ @(property.name)=@("{{{")@(property.name)|@("}}}") } @// sidif - newline relevant @def sidif(Topic topic) { @("{{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}}") isA @(topic.name)<br>@("|}}")@for (Property property:topic.propertiesByIndex()){@// avoid newline @("{{#if:{{{")?@(property.name)@("|}}}|")"@("{{{")?@(property.name)@("}}}")" is @property.name of it <br>|@("}}")} } @// includeonly part of wiki template @def includeonly(Topic topic, boolean withComment) { @("{{#switch:"){{{userparam|}}}|sidif=@sidif(topic) |#default=@("{{#switch:"){{{storemode|}}} |none= @if ("subobject".equals(topic.defaultstoremode)) { |subobject=@("{{#subobject:-") |isA=@(topic.name) @for (Property property:topic.propertiesByIndex()) { |@(topic.name) @setProperty(property) } @("}}")@//#subobject } |@("{{#set:") |isA=@(topic.name) @for (Property property:topic.propertiesByIndex()) { |@topic.name @setProperty(property) } @("}}")@//#set @("}}")@//#switch @("{{#switch:") {{{viewmode|}}} |masterdetail= @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @if (topicLink.targetTopic) { === @(topicLink.targetRole) === @("{{")#ask:[[Concept:@(topicLink.targetTopic.name)]][[@(topicLink.targetTopic.name) @(topicLink.sourceRole)::@("{{FULLPAGENAME}}")]] @for (Property property:topicLink.targetTopic.propertiesByIndex()) { | ?@(topicLink.targetTopic.name) @property.name = @property.name } @("}}") } } |tableheader=@("{{{!}}") class='wikitable' @{String delim="!";} @for (Property property:topic.propertiesByIndex()) {@(delim)@(property.name)@{delim="!!";}} @("\n{{!}}-") |tablerow= @{delim="{{!}}"} @for (Property property:topic.propertiesByIndex()) {@(delim){{{@(property.name)|}}}@{delim="{{!}}{{!}}"}} @("\n{{!}}-") |tablefooter=@("{{!}}}") |labelfield= @for (Property property:topic.propertiesByIndex()) {@(property.name)=@(showProperty(property))<br>} |#default=@("{{{!}}") class='wikitable' ! colspan='2' @("{{!}}")@(topic.name) @("{{!}}-") @for (Property property:topic.propertiesByIndex()) {@("!")@(propertyLabel(property)) @("{{!}}")&nbsp;@(showProperty(property)) @("{{!}}")- } @("{{!}}}") @("}}")@//#switch @("}}")@//#switch @// do not add subobjects to category - this would make selecting the default form difficult @if ("property".equals(topic.defaultstoremode)) { [[Category:@topic.name]] } } @// wikiSonUsage @def wikiSonUsage(Topic topic,String modeLine) { <pre>@("{{")@topic.name @for (Property property:topic.propertiesByIndex()) { |@property.name= } |@modeLine @("}}") </pre> }@// avoid newline @// noinclude part of wiki template @def noinclude(Topic topic) { This is the template {{Link|target=Template:@topic.name|title=@topic.name}}. It belongs to the concept/topic {{Link|target=:Concept:@topic.name}}<br> You may find examples for the use of this template via the {{Link|target=List of @(topic.pluralName)}}. === Usage === @{ String[] storeModes={"subobject","property","none"};} @for (String storeMode:storeModes) { ==== storemode @storeMode ==== @wikiSonUsage(topic,"storemode="+storeMode) } @{ String[] viewModes={"tableheader","tablerow","tablefooter","labelfield"};} @for (String viewMode:viewModes) { ==== viewmode @viewMode ==== @wikiSonUsage(topic,"viewmode="+viewMode) } === Source === @("<source") lang='html4strict'> @includeonly(topic,true) @("<")@("/source>") Click on "Edit" to edit the Source of this Template. }@// avoid newline @def template(Topic maintopic) {<noinclude> @copyright() @noinclude(maintopic) </noinclude><includeonly>@includeonly(maintopic,false)</includeonly>}@// avoid newline @template(contextSetting.getMaintopic()) </source> === javacodegen === <source lang='java' id='javacodegen' cache='true'> @include(wiki.SiDIFTemplates.defs) === java code === @("<source lang='java' id='javacode'>") @verbatim() { @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } } @// user code section @// smartGenerator compatible like: @// // >>>{User defined import section}{::com::bitplan::ooa::OOAAssociation}{S37C96C0C016C} @def printUserCode(String codetype,String key,String modelID) { // >>>@("{")@(codetype)@("}")@("{")@(key)@("}")@("{")@(modelID)@("}") // <<<@("{")@(codetype)@("}")@("{")@(key)@("}")@("{")@(modelID)@("}") } @// first character to Upper @def String firstToUpper(String string) { StringBuffer sb = new StringBuffer(string); sb.replace(0, 1, string.substring(0, 1).toUpperCase()); return sb.toString(); } @// generate javacode for the given topic @def javacode(Context context) { @("@def static {") /** * Base class */ static abstract class TopicBase { /** * initialize */ public void init(TripleQuery query) { } } // TopicBase @for(Topic topic:context.getTopics()) { /** * @topic.name * @topic.documentation */ public static class @topic.name extends TopicBase @("{") public String pageid; @for(Property property:topic.getProperties()) { public String @property.name; } @for(Property property:topic.getProperties()) { public String get@(firstToUpper(property.name))() { return @property.name; } public void set@(firstToUpper(property.name))(String p@(firstToUpper(property.name))) { @property.name=p@(firstToUpper(property.name)); } } /** * convert this @topic.name to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for @topic.name */ public @(topic.name)() {} /** * construct a @topic.name from the given Triple * @("@")param query - the TripleQuery to get the triples from * @("@")param p@(topic.name)Triple - the triple to construct me from */ public @(topic.name)(TripleQuery query,Triple p@(topic.name)Triple) @("{") this(query,p@(topic.name)Triple.getSubject().toString()); @("} // constructor") /** * construct a @topic.name from the given pageId * @("@")param query - the TripleQuery to get the triples from * @("@")param pageid - pageid */ public @(topic.name)(TripleQuery query,String pageid) @("{") this.pageid=pageid; @for(Property property:topic.getProperties()) { Triple @(property.name)Triple=query.selectSingle(pageid,"@property.name",null); if (@(property.name)Triple==null) @(property.name)Triple=query.selectSingle(pageid,"Property:@(topic.name)_@property.name",null); if (@(property.name)Triple!=null) @(property.name)=@(property.name)Triple.getObject().toString(); } init(query); @("}") // constructor for @topic.name @printUserCode("user defined topic code",topic.name,topic.name) @("}") // class @topic.name /** * Manager for @topic.name */ public static class @(topic.name)Manager extends TopicBase @("{") public String topicName="@(topic.name)"; public transient List<@topic.name> m@(topic.name)s=new ArrayList<@(topic.name)>(); public transient Map<String,@topic.name> m@(topic.name)Map=new LinkedHashMap<String,@(topic.name)>(); /** * get my @(topic.pluralName) */ public List<@topic.name> get@(topic.pluralName)() { List<@topic.name> result=this.m@(topic.name)s; return result; } /** * add a new @(topic.name) */ public @(topic.name) add(@(topic.name) p@(topic.name)) { m@(topic.name)s.add(p@(topic.name)); m@(topic.name)Map.put(p@(topic.name).getPageid(),p@(topic.name)); return p@(topic.name); } /** * add a new @(topic.name) from the given triple */ public @(topic.name) add(TripleQuery query,Triple p@(topic.name)Triple) { @topic.name l@topic.name=new @(topic.name)(query,p@(topic.name)Triple); add(l@(topic.name)); return l@(topic.name); } // reinitialize my m@(topic.name) map public void reinit() { m@(topic.name)Map.clear(); for (@(topic.name) l@(topic.name):m@(topic.name)s) { m@(topic.name)Map.put(l@(topic.name).getPageid(),l@(topic.name)); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static @(topic.name)Manager fromJson(String json) { @(topic.name)Manager result=JSON.parseObject(json, @(topic.name)Manager.class); result.reinit(); return result; } // default constructor public @(topic.name)Manager() {} // construct me from the given triple Query query public @(topic.name)Manager(TripleQuery query) @("{") // first query the SiDIF bases triplestore TripleQuery l@(topic.name)Query=query.query(null,"isA","@topic.name"); for (Triple l@(topic.name)Triple:l@(topic.name)Query.getTriples()) { add(query,l@(topic.name)Triple); } // then the SMW triplestore l@(topic.name)Query=query.query(null,"Property:IsA","@topic.name"); for (Triple l@(topic.name)Triple:l@(topic.name)Query.getTriples()) { add(query,l@(topic.name)Triple); } init(query); @("}") // constructor for @topic.name Manager @printUserCode("user defined topicmanager code",topic.name,topic.name) @("}") // class @topic.name Manager } @// end static @("}") } @{ Context context=ContextFactory.getInstance().getContext(contextSetting); } @javacode(context) </source> === help === <source lang='java' id='help'> @include(wiki.SiDIFTemplates.defs) @def help(Topic topic) { == Help for @(topic.name) == @topicheader(topic) === Documentation === @topic.wikiDocumentation === Example @(topic.pluralName) === {{#ask: [[Concept:@(topic.name)]] }} === Properties === {{#ask: [[Concept:Property]][[Property topic::Concept:@(topic.name)]] | ?Property documentation = documentation | ?Property type = type | ?Property name = name | ?Property label = label | ?Property allowedValues = allowedValues | ?Property mandatory = mandatory | ?Property uploadable = uploadable |format=table }} @uml("uml",topic) @seealso(topic) [[Category:@topic.name]] } @help(contextSetting.getMaintopic()) </source> === debug === <source lang='java' id='debug'> @include(wiki.SiDIFTemplates.java) @for (Topic topic:mTopicManager.mTopics) { == @(topic.pageid) == === Concept property === @if (topic.conceptProperty) { * @topic.conceptProperty.pageid name=@topic.conceptProperty.name } @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { === source TopicLink @(topicLink.name) === * @topicLink.sourceMultiple @topicLink.source @(topicLink.sourceRole) * @topicLink.targetMultiple @topicLink.target @(topicLink.targetRole) } @for (TopicLink topicLink:topic.targetTopicLinks.mTopicLinks) { === target TopicLink @(topicLink.name) === * @topicLink.sourceMultiple @topicLink.source @(topicLink.sourceRole) * @topicLink.targetMultiple @topicLink.target @(topicLink.targetRole) } @for (Property property:topic.getProperties()) { === Property @(property.name) === <pre> [[Has type::@property.type]] @("{{")Property |name=@property.name |documentation=@property.documentation |type=Special:Types/@property.type |label=@property.label |primaryKey=@property.primaryKey |mandatory=@property.mandatory |uploadable=@property.uploadable |size=@property.size |defaultValue=@property.defaultValue |inputType=@property.inputType |allowedValues=@property.allowedValues |topic=Concept:@topic.pageid @("}}") [[has default form::Property]] This is a Property with type @("{{#show: {{FULLPAGENAMEE}} | ?Property type#- }}") </pre> } } </source> === tripletable === <source lang='java' id='tripletable' cache='true'> @include(wiki.SiDIFTemplates.java) @// macro to show a table of triples @def tripletable(String title,List<org.sidif.triple.Triple> triples) { === @title === {| class="wikitable sortable" ! subject !! predicate !! object |- @for (org.sidif.triple.Triple triple:triples) { |@triple.getSubject() || @triple.getPredicate() || @triple.getObject() |- } |} } @tripletable("all triples",query.getTriples()) @tripletable("topics",topics.getTriples()) </source> === defs === <source lang='java' id='defs' cache='true'> @include(wiki.SiDIFTemplates.java) @// macro to show BITPlan copyright @def copyright() {<!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- -->@// avoid newline } @// error handling - get a stack trace @def String getStackTrace (Throwable t) { StringWriter sw = new StringWriter(); t.printStackTrace(new PrintWriter(sw)); return sw.toString(); } @// macro to to internationalize generator results @def String i18n(String text) { String targetLang=wikiTask.getWiki().getSiteInfo().getLang(); return text; } @// macro for the topic header of a topic @def topicheader(Topic topic) { {{#ask: [[Topic name::@(topic.name)]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} } @// macro for the form template of a topic @def formtemplate(Topic topic,String multiple) { <!-- @(topic.name) --> @("{{{")for template|@(topic.name)@(multiple)@("}}}") @("{|") class="wikitable" ! colspan='2'| @topic.name |- @for (Property property:topic.propertiesByIndex()) { ! @property.label: <!-- @property.type @property.name --> @{ String allowedValues=""; if (property.allowedValues!=null) { allowedValues="|values="+property.allowedValues; } String mandatory=""; if ("true".equals(property.mandatory)) { mandatory="|mandatory"; } String uploadable=""; if ("true".equals(property.uploadable)) { uploadable="|uploadable"; } String values_from=""; if (property.values_from!=null) { values_from="|values from "+property.values_from; } String defaultValue=""; if (property.defaultValue!=null) { defaultValue="|default="+property.defaultValue; } } | @("{{{")field|@property.name|input type=@property.inputType|property=@(topic.name) @(property.name)|size=@(property.size)@(mandatory)@(uploadable)@(values_from)@(allowedValues)@(defaultValue)@("}}}") |- } @("|}") @("{{{")field|storemode|default=@(topic.defaultstoremode)|hidden@("}}}") @("{{{end template}}}") <!-- @(topic.name) --> } @// macro to to show relevant links for a topic @def seealso(Topic topic) { see also * [[List of @(topic.pluralName)]] * [[Help:@topic.name]] * [[Concept:@topic.name]] * [[:Category:@topic.name]] * [[:Template:@topic.name]] * [[:Form:@topic.name]] topic links: @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @if (topicLink.targetTopic) { * [[:Category:@(topicLink.targetTopic.name)]] } } } @// macro to create skin params for BITPlan corporate identity @def bitplanumlci(int fontSize) { ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager @{ String skinparams[] = {"note", "component", "package", "usecase","activity","classAttribute","interface","class","object"}; } @for (String skinparam:skinparams) { skinparam @skinparam { BackGroundColor #FFFFFF FontSize @fontSize ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } } hide Circle ' end of skinparams ' } @// macro to create Relation @def plantUmlRelation(TopicLink topicLink) { @{ String sourceMany="1"; String targetMany="1"; if ("true".equals(topicLink.sourceMultiple)) sourceMany="*"; if ("true".equals(topicLink.targetMultiple)) targetMany="*"; } @(topicLink.source) "@(topicLink.sourceRole) (@(sourceMany))" -- "@(topicLink.targetRole)(@(targetMany))" @(topicLink.target) } @// macro to create uml from simela triples @def uml(String title,Topic topic) { === @title === <uml> title @topic.name note as @(topic.name)DiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as @(topic.name)Note @(topic.documentation) end note class @topic.name @("{") @for (Property property:topic.propertiesByIndex()) { @(property.type) @(property.name) } @("}") @(topic.name)Note .. @(topic.name) @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @plantUmlRelation(topicLink) } @for (TopicLink topicLink:topic.targetTopicLinks.mTopicLinks) { @plantUmlRelation(topicLink) } @bitplanumlci(12) </uml> } </source> === dialogdefs === <source lang='java' id='dialogdefs' cache='true'> @import java.net.URLEncoder @// JQuery imports @def jquery(String indent) { @(indent)<!-- JQuery Code for resthtmlview --> @(indent)<script src="/resthtmlview/js/jquery-1.10.2.min.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery-ui-1.10.0.custom.js"></script> @(indent)<script src="/resthtmlview/js/i18n/grid.locale-en.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/ui.multiselect.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery.ui.message.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery.jqGrid.min.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/redactor.min.js" type="text/javascript"></script> @(indent)<!-- load jQuery and tablesorter scripts --> @(indent)<script src="/resthtmlview/js/jquery.tablesorter.min.js"></script> @(indent)<script src="/resthtmlview/js/jquery.tablesorter.widgets.js"></script> @(indent)<script src="/resthtmlview/js/jquery.metadata.js"></script> @(indent)<!-- JQuery Styles for resthtmlview --> @(indent)<link href="/resthtmlview/css/form.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/messages.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/bitplanfadetogrey/jquery-ui-1.10.1.custom.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/ui.jqgrid.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<link href="/resthtmlview/css/ui.multiselect.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<!-- Tablesorter: required --> @(indent)<link href="/resthtmlview/css/theme.blue.css" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/searchFilter.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<link href="/resthtmlview/css/redactor.css" type="text/css" media="screen" rel="stylesheet" /> } @// CSS Style definitions @def style(String indent) { @(indent)<style> @(indent) body { height:100% } @(indent) #container { @(indent) background-color: #f0f0f0; /* lightblue background */ @(indent) width: 100%; /* Container has full width */ @(indent) margin: auto; /* center container */ @(indent) min-height: 100%; /* minimum height 100 % (for modern browsers) */ @(indent) height: auto !important; /* important Behel (for modern browsers */ @(indent) height: 100%; /* IE shall work as specified */ @(indent) overflow: hidden !important; /* firefox scrollbar */ @(indent) } @(indent)</style> } @// dialog definition @def dialog(String indent) { @(indent)<script type="text/javascript"> @(indent) $(document).ready(function() { @(indent) var wWidth = $(window).width(); @(indent) var wHeight = $(window).height(); @(indent) var dTopy = wHeight * 0.25; // top at 25% of window height @(indent) var dTopx = wWidth * 0.25; // left at 25% of window width @(indent) var dWidth = 'auto'; //this will make the dialog 98% of the window size @(indent) var dHeight = 'auto'; @(indent) $( "#dialog" ).dialog({ @(indent) // position : [ dTopx, dTopy ], @(indent) width : dWidth, @(indent) height : dHeight, @(indent) modal : true, @(indent) // title: ""+wWidth+"x"+wHeight+" "+dTopx+":"+dTopy, @(indent) my: "center", @(indent) at: "center", @(indent) of: window, @(indent) show : { @(indent) effect : "blind", @(indent) duration : 500 @(indent) }, @(indent) hide : { @(indent) effect : "fade", @(indent) duration : 500 @(indent) } @(indent) }); @(indent) // tabs @(indent) $( "#tabs" ).tabs(); @(indent) // tablesorter @(indent) $.extend( $.tablesorter.defaults, { @(indent) theme: 'blue', @(indent) widthFixed: false @(indent) }); @(indent) $(".sortable").tablesorter(); @(indent) }); @(indent)</script> } @// display the given stockicon @def String stockicon(String name,int size,String alt,String title) { String iconhref="/stockicons/"+size+"x"+size+"/shadow/"+name+".png"; String img="<img src='"+iconhref+"' alt='"+alt+"' title='"+title+"' width='"+size+"px' height='"+size+"px' >"; return img; } @// url encode the given txt @def String urlEncode(String txt) { String result=URLEncoder.encode(txt, "UTF-8"); return result; } @def selectall() { <script> /** * http://stackoverflow.com/questions/432493/how-do-you-access-the-matched-groups-in-a-javascript-regular- * expression * examples: * * var matches = getRegexMatches(/(dog)/, "dog boat, cat car dog"); * console.log(matches); * * var matches = getRegexMatches(/(dog|cat) (boat|car)/, "dog boat, cat car"); * console.log(matches); */ function getRegexMatches(regex, string) { if(!(regex instanceof RegExp)) { return "ERROR"; } else { if (!regex.global) { // If global flag not set, create new one. var flags = "g"; if (regex.ignoreCase) flags += "i"; if (regex.multiline) flags += "m"; if (regex.sticky) flags += "y"; regex = RegExp(regex.source, flags); } } var matches = []; var match = regex.exec(string); while (match) { if (match.length > 2) { var group_matches = []; for (var i = 1; i < match.length; i++) { group_matches.push(match[i]); } matches.push(group_matches); } else { matches.push(match[1]); } match = regex.exec(string); } return matches; } /** * get the select_row or select_col checkboxes dependening on the selectType row/col */ function getSelectCheckboxes(selectType) { var regex=new RegExp("select_"+selectType+"_"); var result= $('input').filter(function() {return this.id.match(regex);}); return result; } /** * matrix selection logic * the goal is to provide select all / select row x / select col x * checkboxes that will allow to * select all: select all grid elements * select row: select the grid elements in the given row * select col: select the grid elements in the given col * * There is a naming convention for the ids and css style classes of the the selectors and elements: * select all -> id: selectall * select row -> id: select_row_row e.g. select_row_2 * select col -> id: select_col_col e.g. select_col_3 * grid element -> class checkBoxClass col_col row_row e.g. checkBoxClass row_2 col_3 */ function checkSelectStates() { // get the list of grid checkbox elements // all checkboxes var all = $('.checkBoxClass'); // all select row check boxes var rows = getSelectCheckboxes('row'); // all select columnn check boxes var cols = getSelectCheckboxes('col'); // console.log("rows: "+rows.length+", cols:"+cols.length+" total: "+all.length); // get the total number of checkboxes in the grid var allLen=all.length; // get the number of checkboxes in the checked state var filterLen=all.filter(':checked').length; // console.log(allLen+"-"+filterLen); // if all checkboxes are in the checked state // set the state of the selectAll checkbox to checked to be able // to deselect all at once, otherwise set it to unchecked to be able to select all at once if (allLen == filterLen) { $("#selectall").prop("checked", true); } else { $("#selectall").prop("checked", false); } // now check the completeness of the rows for (row = 0; row < rows.length; row++) { var rowall=$('.row_'+row); var rowchecked=rowall.filter(':checked'); if (rowall.length == rowchecked.length) { $("#select_row_"+row).prop("checked", true); } else { $("#select_row_"+row).prop("checked", false); } } // now check the completeness of the cols for (col = 0; col < cols.length; col++) { var colall=$('.col_'+col); var colchecked=colall.filter(':checked'); if (colall.length == colchecked.length) { $("#select_col_"+col).prop("checked", true); } else { $("#select_col_"+col).prop("checked", false); } } } $(document).ready(function () { // handle click event for Select all check box $("#selectall").click(function () { // set the checked property of all grid elements to be the same as // the state of the SelectAll check box var state=$("#selectall").prop('checked'); $(".checkBoxClass").prop('checked', state); getSelectCheckboxes('row').prop('checked', state); getSelectCheckboxes('col').prop('checked', state); }); // handle clicks within the grid $(".checkBoxClass").on( "click", function() { checkSelectStates(); }); $('.checkboxSelect').on( "click", function() { var matchRowColArr=getRegexMatches(/select_(row|col)_([0-9]+)/,this.id); var matchRowCol=matchRowColArr[0]; // console.log(matchRowCol); if (matchRowCol.length==2) { var selectType=matchRowCol[0]; // e.g. row var selectIndex=matchRowCol[1]; // e.g. 2 // console.log(this.id+" clicked to select "+selectType+" "+selectIndex); // e.g. .row_2 $("."+selectType+"_"+selectIndex) .prop('checked', $("#select_"+selectType+"_"+selectIndex).prop('checked')); checkSelectStates(); } }); }); </script> } </source> === java === The debugging version of the SiDIF Templates <source lang='java' id='java' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.TripleStore @import org.sidif.triple.Triple @import org.sidif.wiki.SMW_Triples @import com.alibaba.fastjson.JSON @// import instead of src @import com.bitplan.topic.TopicStatic.YT @import com.bitplan.topic.TopicStatic.Context @import com.bitplan.topic.TopicStatic.Topic @import com.bitplan.topic.TopicStatic.Property @import com.bitplan.topic.TopicStatic.SMW_Type @import com.bitplan.topic.TopicStatic.TopicLink @import com.bitplan.topic.TopicStatic.ContextManager @import com.bitplan.topic.TopicStatic.TopicManager @import com.bitplan.topic.TopicStatic.PropertyManager @import com.bitplan.topic.TopicStatic.SMW_TypeManager @import com.bitplan.topic.TopicStatic.TopicLinkManager @import com.bitplan.topic.ContextFactory @import com.bitplan.topic.ContextSetting @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } </source> === javasrc === <source lang='java' id='javasrc' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.TripleStore @import org.sidif.triple.Triple @import org.sidif.wiki.SMW_Triples @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore com.bitplan.topic.TopicManager topicManager } @def static { /** * Base class */ static abstract class TopicBase { /** * initialize */ public void init(TripleQuery query) { } } // TopicBase /** * technical part of Y-Principle * * @author wf * */ static class YT { // Y-Principle technical parts public static YT yts[] = { new YT("Category", "Category", "category", "/images/d/d6/Category_Icon.png"), new YT("Concept", "Concept", "concept", "/images/2/25/Concept_Icon.png"), new YT("Form", "Form", "form", "/images/e/e5/Form_icon.jpg"), new YT("Help", "Help", "help", "/images/7/7a/Help_Icon.png"), new YT("Listof", "List of", "listof", "/images/7/7f/List_Icon.png"), new YT("Template", "Template", "template", "/images/6/61/Icon_template.png"), new YT("Properties", "Properties", "properties", "/images/6/6a/Element_into_input.png"), new YT("Java", "Java", "javacodegen", "/images/3/38/Java_icon.png") }; /** * get the YT with the given name * * @param ytname */ public static YT getYT(String ytname) { for (YT yt : yts) { if (yt.name.equals(ytname)) { return yt; } } return null; } String name; String label; String iconUrl; String template; /** * construct me with name label and icon url * * @param name * @param label * @param iconUrl */ public YT(String name, String label,String template, String iconUrl) { super(); this.name = name; this.label = label; this.template=template; this.iconUrl = iconUrl; } /** * a part where name and label is different * * @param name * @param label */ public YT(String name, String label) { this(name,label,name.toLowerCase(),"Datei:"+name+".png"); } /** * a part where name and label is the same * * @param name */ public YT(String name) { this(name, name); } /** * get the page Title for the given topic name * * @param topicname * @return */ public String getPageTitle(Topic topic) { String result = this.name + ":" + topic.name; if ("Listof".equals(name)) { result = "List_of_" + topic.pluralName.replace(" ","_"); } if ("Properties".equals(name)) { result = "Concept:" + topic.name.replace(" ","_")+"/Properties"; } return result; } } /** * Context A Context groups some topics like a Namespace/Package */ static class Context extends TopicBase { String pageid; String name; public String getName() { return name; } public void setName(String pName) { name = pName; } /** * convert this Context to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Context */ public Context() { } /** * construct a Context from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pContextTriple * - the triple to construct me from */ public Context(TripleQuery query, Triple pContextTriple) { this(query, pContextTriple.getSubject().toString()); } // constructor /** * construct a Context from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Context(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Context_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); init(query); } // constructor for Context // >>>{user defined topic code}{Context}{Context} /** * get the propertySidif of the given property * @param name * @param value * @return */ public String propertySiDIF(String name,String value, String type) { String result=""; String quote=""; if ("Text".equals(type)) { quote="\""; } if (value!=null) { result+=quote+value+quote+" is "+name+" of it\n"; } return result; } /** * get me as a String * @param name * @param value * @return */ public String propertySiDIF(String name,String value) { String result=propertySiDIF(name,value,"Text"); return result; } /** * return me as a SiDIF string * @return */ public String asSiDIF() { String result=""; result+="#\n"; result+="# Context:"+getName()+"\n"; result+="#\n"; result+=getPageid()+" isA Context\n"; result+=this.propertySiDIF("name", name); for (Topic topic:this.getTopics()) { result+="#\n"; result+="#"+topic.getName()+"\n"; result+="#\n"; result+=topic.name+" isA Topic\n"; result+=this.propertySiDIF("name", topic.name); result+=this.propertySiDIF("pluralName", topic.pluralName); result+=this.propertySiDIF("documentation",topic.documentation); result+=this.propertySiDIF("wikiDocumentation",topic.wikiDocumentation); result+=this.propertySiDIF("icon",topic.icon); result+=this.propertySiDIF("defaultstoremode", topic.defaultstoremode); result+=this.propertySiDIF("context", this.getName()); for (Property property:topic.getProperties()) { result+=topic.getName()+"_"+property.getName()+" addsTo it\n"; } for (Property property:topic.getProperties()) { result+=topic.getName()+"_"+property.getName()+" isA Property\n"; result+=propertySiDIF("name",property.name); result+=propertySiDIF("allowedValues",property.allowedValues); result+=propertySiDIF("defaultValue",property.defaultValue); result+=propertySiDIF("documentation",property.documentation); result+=propertySiDIF("inputType",property.inputType); result+=propertySiDIF("label",property.label); result+=propertySiDIF("mandatory", property.mandatory,"Boolean"); result+=propertySiDIF("namespace",property.namespace); result+=propertySiDIF("primaryKey",property.primaryKey,"Boolean"); result+=propertySiDIF("pageid",property.pageid); result+=propertySiDIF("size",property.size,"Number"); result+=propertySiDIF("topic",topic.getName()); } } return result; } // 1:n relation to topics TopicManager topics = new TopicManager(); /** * accessor for 1:n relation to topics * * @return */ public List<Topic> getTopics() { return topics.mTopics; } /** * recreate topics from a given list * @param pTopics */ public void setTopics(List<Topic> pTopics) { topics = new TopicManager(); topics.mTopics=pTopics; for (Topic topic:pTopics) { topics.mTopicMap.put(topic.getPageid(), topic); } } // <<<{user defined topic code}{Context}{Context} } // class Context /** * Manager for Context */ static class ContextManager extends TopicBase { public String topicName = "Context"; public List<Context> mContexts = new ArrayList<Context>(); public Map<String, Context> mContextMap = new LinkedHashMap<String, Context>(); /** * add a new Context */ public Context add(Context pContext) { mContexts.add(pContext); mContextMap.put(pContext.getPageid(), pContext); return pContext; } /** * add a new Context from the given triple */ public Context add(TripleQuery query, Triple pContextTriple) { Context lContext = new Context(query, pContextTriple); add(lContext); return lContext; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public ContextManager() { } // construct me from the given triple Query query public ContextManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lContextQuery = query.query(null, "isA", "Context"); for (Triple lContextTriple : lContextQuery.getTriples()) { add(query, lContextTriple); } // then the SMW triplestore lContextQuery = query.query(null, "Property:IsA", "Context"); for (Triple lContextTriple : lContextQuery.getTriples()) { add(query, lContextTriple); } init(query); } // constructor for Context Manager // >>>{user defined topicmanager code}{Context}{Context} public TopicManager mTopicManager; public PropertyManager mPropertyManager; /** * run pass 2 to link topics to context * * @return */ public List<String> pass2() { List<String> result = new ArrayList<String>(); for (Topic topic : mTopicManager.mTopics) { if (topic.context != null) { Context context = this.mContextMap.get(topic.context); if (context != null) { context.topics.mTopics.add(topic); } else { result.add("Context '" + topic.context + "' not found"); } } } for (Property property : mPropertyManager.mPropertys) { if (property.topic != null) { Topic topic = mTopicManager.mTopicMap.get(property.topic); if (topic != null) { // FIXME use an add function that also adds to the map topic.properties.mPropertys.add(property); } else { result.add("Topic '" + property.topic + "' not found"); } } } return result; } /** * construct me from a tripleStore * * @param tripleStore */ public ContextManager(TripleStore tripleStore) { this(tripleStore.query()); mTopicManager = new TopicManager(tripleStore.query()); mPropertyManager = new PropertyManager(tripleStore.query()); mTopicManager.configureTopics(); pass2(); } // <<<{user defined topicmanager code}{Context}{Context} } // class Context Manager /** * Topic A Topic is a Concept/Class/Thing/Entity */ static class Topic extends TopicBase { String pageid; String name; String pluralName; String icon; String wikiDocumentation; String documentation; String defaultstoremode; String context; public String getName() { return name; } public void setName(String pName) { name = pName; } public String getPluralName() { return pluralName; } public void setPluralName(String pPluralName) { pluralName = pPluralName; } public String getIcon() { return icon; } public void setIcon(String pIcon) { icon = pIcon; } public String getWikiDocumentation() { return wikiDocumentation; } public void setWikiDocumentation(String pWikiDocumentation) { wikiDocumentation = pWikiDocumentation; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getDefaultstoremode() { return defaultstoremode; } public void setDefaultstoremode(String pDefaultstoremode) { defaultstoremode = pDefaultstoremode; } public String getContext() { return context; } public void setContext(String pContext) { context = pContext; } /** * convert this Topic to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Topic */ public Topic() { } /** * construct a Topic from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pTopicTriple * - the triple to construct me from */ public Topic(TripleQuery query, Triple pTopicTriple) { this(query, pTopicTriple.getSubject().toString()); } // constructor /** * construct a Topic from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Topic(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Topic_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple pluralNameTriple = query.selectSingle(pageid, "pluralName", null); if (pluralNameTriple == null) pluralNameTriple = query.selectSingle(pageid, "Property:Topic_pluralName", null); if (pluralNameTriple != null) pluralName = pluralNameTriple.getObject().toString(); Triple iconTriple = query.selectSingle(pageid, "icon", null); if (iconTriple == null) iconTriple = query.selectSingle(pageid, "Property:Topic_icon", null); if (iconTriple != null) icon = iconTriple.getObject().toString(); Triple wikiDocumentationTriple = query.selectSingle(pageid, "wikiDocumentation", null); if (wikiDocumentationTriple == null) wikiDocumentationTriple = query.selectSingle(pageid, "Property:Topic_wikiDocumentation", null); if (wikiDocumentationTriple != null) wikiDocumentation = wikiDocumentationTriple.getObject().toString(); Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:Topic_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple defaultstoremodeTriple = query.selectSingle(pageid, "defaultstoremode", null); if (defaultstoremodeTriple == null) defaultstoremodeTriple = query.selectSingle(pageid, "Property:Topic_defaultstoremode", null); if (defaultstoremodeTriple != null) defaultstoremode = defaultstoremodeTriple.getObject().toString(); Triple contextTriple = query.selectSingle(pageid, "context", null); if (contextTriple == null) contextTriple = query.selectSingle(pageid, "Property:Topic_context", null); if (contextTriple != null) context = contextTriple.getObject().toString(); init(query); } // constructor for Topic // >>>{user defined topic code}{Topic}{Topic} PropertyManager properties = new PropertyManager(); TopicLinkManager sourceTopicLinks = new TopicLinkManager(); TopicLinkManager targetTopicLinks = new TopicLinkManager(); Property conceptProperty; // the Property to be used when selecting a // Concept /** * get the Properties * * @return */ public List<Property> getProperties() { return properties.mPropertys; } /** * initialize me with the given query * * @Override */ public void init(TripleQuery query) { TripleQuery propertyQuery = query.query(null, "addsTo", pageid); if (propertyQuery != null) { for (Triple property : propertyQuery.getTriples()) { properties.add(query, property); } } addTopicLinks(query, sourceTopicLinks, "source"); addTopicLinks(query, targetTopicLinks, "target"); if (name == null) { name = pageid; } if (pluralName == null) { pluralName = name + "s"; } // add Properties for targetTopicLinks // this is the referenced to the "neighbour" Topic for (TopicLink topicLink : targetTopicLinks.mTopicLinks) { Property property = new Property(); property.pageid = topicLink.sourceRole; property.name = property.pageid; property.label = property.name; property.type = "Page"; // make sure the form shows the neighbour concept as an option String sourceName = topicLink.source; // remove "Concept:" prefix !!! FIXME - this is language dependent // and a horrible work around for the time being sourceName = sourceName.replace("Concept:", ""); sourceName = sourceName.replace("Konzept:", ""); property.values_from = "concept=" + sourceName; property.inputType = "dropdown"; properties.mPropertys.add(property); } } /** * add the topicLinks * * @param query * - the TripleQuery to get the triples from * @param tm * - the TopicLinkManager to add the topic links to * @param predicate * - the predicate to be used for linking */ public void addTopicLinks(TripleQuery query, TopicLinkManager tm, String predicate) { TripleQuery linkQuery = query.query(null, predicate, pageid); if (linkQuery != null) { for (Triple linkTriple : linkQuery.getTriples()) { String link = linkTriple.getSubject().toString(); TopicLink topiclink = new TopicLink(query, link); tm.mTopicLinks.add(topiclink); } } } /** * check my source TopicLinks and set the targetTopic by looking it up */ public void linkTargetTopics(TopicManager tm) { for (TopicLink sourceTopicLink : sourceTopicLinks.mTopicLinks) { String topicTarget = sourceTopicLink.target; // e.g. Concept:Property; topicTarget = topicTarget.replace("Concept:", ""); // remove Concept // part topicTarget = topicTarget.replace("Koncept:", ""); // remove Concept // part Topic targetTopic = tm.byName(topicTarget); if (targetTopic != null) { sourceTopicLink.targetTopic = targetTopic; } } } /** * set the concept Property for the given target Property */ public void setConceptProperty() { for (Property property : properties.mPropertys) { if ("true".equals(property.mandatory) || "true".equals(property.primaryKey)) { conceptProperty = property; break; } } } // <<<{user defined topic code}{Topic}{Topic} } // class Topic /** * Manager for Topic */ static class TopicManager extends TopicBase { public String topicName = "Topic"; public List<Topic> mTopics = new ArrayList<Topic>(); public Map<String, Topic> mTopicMap = new LinkedHashMap<String, Topic>(); /** * add a new Topic */ public Topic add(Topic pTopic) { mTopics.add(pTopic); mTopicMap.put(pTopic.getPageid(), pTopic); return pTopic; } /** * add a new Topic from the given triple */ public Topic add(TripleQuery query, Triple pTopicTriple) { Topic lTopic = new Topic(query, pTopicTriple); add(lTopic); return lTopic; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public TopicManager() { } // construct me from the given triple Query query public TopicManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicQuery = query.query(null, "isA", "Topic"); for (Triple lTopicTriple : lTopicQuery.getTriples()) { add(query, lTopicTriple); } // then the SMW triplestore lTopicQuery = query.query(null, "Property:IsA", "Topic"); for (Triple lTopicTriple : lTopicQuery.getTriples()) { add(query, lTopicTriple); } init(query); } // constructor for Topic Manager // >>>{user defined topicmanager code}{Topic}{Topic} /** * get a topic by the given name * * @param topicName * - the name of the topic to get FIXME - speedup? */ public Topic byName(String topicName) { Topic result = null; for (Topic topic : mTopics) { if (topicName.equals(topic.name)) { result = topic; } } return result; } // byName /** * configure Topics: link TargetTopics set Concept Properties */ public void configureTopics() { for (Topic topic : mTopics) { topic.setConceptProperty(); topic.linkTargetTopics(this); } } // <<<{user defined topicmanager code}{Topic}{Topic} } // class Topic Manager /** * SMW_Type an SMW_Type is a data type which determines the possible values * for that type e.g. a Boolean can hold true/fals values while a Number can * hold 3.1459 or 20. A Page can hold the name of a Wiki page see * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes */ static class SMW_Type extends TopicBase { String pageid; String documentation; String type; String typepage; String helppage; String javaType; public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getType() { return type; } public void setType(String pType) { type = pType; } public String getTypepage() { return typepage; } public void setTypepage(String pTypepage) { typepage = pTypepage; } public String getHelppage() { return helppage; } public void setHelppage(String pHelppage) { helppage = pHelppage; } public String getJavaType() { return javaType; } public void setJavaType(String pJavaType) { javaType = pJavaType; } /** * convert this SMW_Type to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for SMW_Type */ public SMW_Type() { } /** * construct a SMW_Type from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pSMW_TypeTriple * - the triple to construct me from */ public SMW_Type(TripleQuery query, Triple pSMW_TypeTriple) { this(query, pSMW_TypeTriple.getSubject().toString()); } // constructor /** * construct a SMW_Type from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public SMW_Type(TripleQuery query, String pageid) { this.pageid = pageid; Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:SMW_Type_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple typeTriple = query.selectSingle(pageid, "type", null); if (typeTriple == null) typeTriple = query.selectSingle(pageid, "Property:SMW_Type_type", null); if (typeTriple != null) type = typeTriple.getObject().toString(); Triple typepageTriple = query.selectSingle(pageid, "typepage", null); if (typepageTriple == null) typepageTriple = query.selectSingle(pageid, "Property:SMW_Type_typepage", null); if (typepageTriple != null) typepage = typepageTriple.getObject().toString(); Triple helppageTriple = query.selectSingle(pageid, "helppage", null); if (helppageTriple == null) helppageTriple = query.selectSingle(pageid, "Property:SMW_Type_helppage", null); if (helppageTriple != null) helppage = helppageTriple.getObject().toString(); Triple javaTypeTriple = query.selectSingle(pageid, "javaType", null); if (javaTypeTriple == null) javaTypeTriple = query.selectSingle(pageid, "Property:SMW_Type_javaType", null); if (javaTypeTriple != null) javaType = javaTypeTriple.getObject().toString(); init(query); } // constructor for SMW_Type // >>>{user defined topic code}{SMW_Type}{SMW_Type} // <<<{user defined topic code}{SMW_Type}{SMW_Type} } // class SMW_Type /** * Manager for SMW_Type */ static class SMW_TypeManager extends TopicBase { public String topicName = "SMW_Type"; public List<SMW_Type> mSMW_Types = new ArrayList<SMW_Type>(); public Map<String, SMW_Type> mSMW_TypeMap = new LinkedHashMap<String, SMW_Type>(); /** * add a new SMW_Type */ public SMW_Type add(SMW_Type pSMW_Type) { mSMW_Types.add(pSMW_Type); mSMW_TypeMap.put(pSMW_Type.getPageid(), pSMW_Type); return pSMW_Type; } /** * add a new SMW_Type from the given triple */ public SMW_Type add(TripleQuery query, Triple pSMW_TypeTriple) { SMW_Type lSMW_Type = new SMW_Type(query, pSMW_TypeTriple); add(lSMW_Type); return lSMW_Type; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public SMW_TypeManager() { } // construct me from the given triple Query query public SMW_TypeManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lSMW_TypeQuery = query.query(null, "isA", "SMW_Type"); for (Triple lSMW_TypeTriple : lSMW_TypeQuery.getTriples()) { add(query, lSMW_TypeTriple); } // then the SMW triplestore lSMW_TypeQuery = query.query(null, "Property:IsA", "SMW_Type"); for (Triple lSMW_TypeTriple : lSMW_TypeQuery.getTriples()) { add(query, lSMW_TypeTriple); } init(query); } // constructor for SMW_Type Manager // >>>{user defined topicmanager code}{SMW_Type}{SMW_Type} // <<<{user defined topicmanager code}{SMW_Type}{SMW_Type} } // class SMW_Type Manager /** * Property a Property is a Feature/Attribute */ static class Property extends TopicBase { String pageid; String documentation; String name; String type; String label; String primaryKey; String mandatory; String uploadable; String size; String defaultValue; String inputType; String namespace; String values_from; String allowedValues; String topic; public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getName() { return name; } public void setName(String pName) { name = pName; } public String getType() { return type; } public void setType(String pType) { type = pType; } public String getLabel() { return label; } public void setLabel(String pLabel) { label = pLabel; } public String getPrimaryKey() { return primaryKey; } public void setPrimaryKey(String pPrimaryKey) { primaryKey = pPrimaryKey; } public String getMandatory() { return mandatory; } public void setMandatory(String pMandatory) { mandatory = pMandatory; } public String getUploadable() { return uploadable; } public void setUploadable(String pUploadable) { uploadable = pUploadable; } public String getSize() { return size; } public void setSize(String pSize) { size = pSize; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String pDefaultValue) { defaultValue = pDefaultValue; } public String getInputType() { return inputType; } public void setInputType(String pInputType) { inputType = pInputType; } public String getNamespace() { return namespace; } public void setNamespace(String pNamespace) { namespace = pNamespace; } public String getValues_from() { return values_from; } public void setValues_from(String pValues_from) { values_from = pValues_from; } public String getAllowedValues() { return allowedValues; } public void setAllowedValues(String pAllowedValues) { allowedValues = pAllowedValues; } public String getTopic() { return topic; } public void setTopic(String pTopic) { topic = pTopic; } /** * convert this Property to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Property */ public Property() { } /** * construct a Property from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pPropertyTriple * - the triple to construct me from */ public Property(TripleQuery query, Triple pPropertyTriple) { this(query, pPropertyTriple.getSubject().toString()); } // constructor /** * construct a Property from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Property(TripleQuery query, String pageid) { this.pageid = pageid; Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:Property_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Property_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple typeTriple = query.selectSingle(pageid, "type", null); if (typeTriple == null) typeTriple = query.selectSingle(pageid, "Property:Property_type", null); if (typeTriple != null) type = typeTriple.getObject().toString(); Triple labelTriple = query.selectSingle(pageid, "label", null); if (labelTriple == null) labelTriple = query.selectSingle(pageid, "Property:Property_label", null); if (labelTriple != null) label = labelTriple.getObject().toString(); Triple primaryKeyTriple = query.selectSingle(pageid, "primaryKey", null); if (primaryKeyTriple == null) primaryKeyTriple = query.selectSingle(pageid, "Property:Property_primaryKey", null); if (primaryKeyTriple != null) primaryKey = primaryKeyTriple.getObject().toString(); Triple mandatoryTriple = query.selectSingle(pageid, "mandatory", null); if (mandatoryTriple == null) mandatoryTriple = query.selectSingle(pageid, "Property:Property_mandatory", null); if (mandatoryTriple != null) mandatory = mandatoryTriple.getObject().toString(); Triple uploadableTriple = query.selectSingle(pageid, "uploadable", null); if (uploadableTriple == null) uploadableTriple = query.selectSingle(pageid, "Property:Property_uploadable", null); if (uploadableTriple != null) uploadable = uploadableTriple.getObject().toString(); Triple sizeTriple = query.selectSingle(pageid, "size", null); if (sizeTriple == null) sizeTriple = query.selectSingle(pageid, "Property:Property_size", null); if (sizeTriple != null) size = sizeTriple.getObject().toString(); Triple defaultValueTriple = query.selectSingle(pageid, "defaultValue", null); if (defaultValueTriple == null) defaultValueTriple = query.selectSingle(pageid, "Property:Property_defaultValue", null); if (defaultValueTriple != null) defaultValue = defaultValueTriple.getObject().toString(); Triple inputTypeTriple = query.selectSingle(pageid, "inputType", null); if (inputTypeTriple == null) inputTypeTriple = query.selectSingle(pageid, "Property:Property_inputType", null); if (inputTypeTriple != null) inputType = inputTypeTriple.getObject().toString(); Triple namespaceTriple = query.selectSingle(pageid, "namespace", null); if (namespaceTriple == null) namespaceTriple = query.selectSingle(pageid, "Property:Property_namespace", null); if (namespaceTriple != null) namespace = namespaceTriple.getObject().toString(); Triple values_fromTriple = query .selectSingle(pageid, "values_from", null); if (values_fromTriple == null) values_fromTriple = query.selectSingle(pageid, "Property:Property_values_from", null); if (values_fromTriple != null) values_from = values_fromTriple.getObject().toString(); Triple allowedValuesTriple = query.selectSingle(pageid, "allowedValues", null); if (allowedValuesTriple == null) allowedValuesTriple = query.selectSingle(pageid, "Property:Property_allowedValues", null); if (allowedValuesTriple != null) allowedValues = allowedValuesTriple.getObject().toString(); Triple topicTriple = query.selectSingle(pageid, "topic", null); if (topicTriple == null) topicTriple = query.selectSingle(pageid, "Property:Property_topic", null); if (topicTriple != null) topic = topicTriple.getObject().toString(); init(query); } // constructor for Property // >>>{user defined topic code}{Property}{Property} @Override public void init(TripleQuery query) { if (name == null) { name = pageid; } if (label == null) { label = name; } if (type == null) { type = "Text"; } } // <<<{user defined topic code}{Property}{Property} } // class Property /** * Manager for Property */ static class PropertyManager extends TopicBase { public String topicName = "Property"; public List<Property> mPropertys = new ArrayList<Property>(); public Map<String, Property> mPropertyMap = new LinkedHashMap<String, Property>(); /** * add a new Property */ public Property add(Property pProperty) { mPropertys.add(pProperty); mPropertyMap.put(pProperty.getPageid(), pProperty); return pProperty; } /** * add a new Property from the given triple */ public Property add(TripleQuery query, Triple pPropertyTriple) { Property lProperty = new Property(query, pPropertyTriple); add(lProperty); return lProperty; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public PropertyManager() { } // construct me from the given triple Query query public PropertyManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lPropertyQuery = query.query(null, "isA", "Property"); for (Triple lPropertyTriple : lPropertyQuery.getTriples()) { add(query, lPropertyTriple); } // then the SMW triplestore lPropertyQuery = query.query(null, "Property:IsA", "Property"); for (Triple lPropertyTriple : lPropertyQuery.getTriples()) { add(query, lPropertyTriple); } init(query); } // constructor for Property Manager // >>>{user defined topicmanager code}{Property}{Property} // <<<{user defined topicmanager code}{Property}{Property} } // class Property Manager /** * TopicLink * */ static class TopicLink extends TopicBase { String pageid; String name; String sourceRole; String sourceMultiple; String source; String sourceDocumentation; String targetRole; String targetMultiple; String target; String masterDetail; String targetDocumentation; public String getName() { return name; } public void setName(String pName) { name = pName; } public String getSourceRole() { return sourceRole; } public void setSourceRole(String pSourceRole) { sourceRole = pSourceRole; } public String getSourceMultiple() { return sourceMultiple; } public void setSourceMultiple(String pSourceMultiple) { sourceMultiple = pSourceMultiple; } public String getSource() { return source; } public void setSource(String pSource) { source = pSource; } public String getSourceDocumentation() { return sourceDocumentation; } public void setSourceDocumentation(String pSourceDocumentation) { sourceDocumentation = pSourceDocumentation; } public String getTargetRole() { return targetRole; } public void setTargetRole(String pTargetRole) { targetRole = pTargetRole; } public String getTargetMultiple() { return targetMultiple; } public void setTargetMultiple(String pTargetMultiple) { targetMultiple = pTargetMultiple; } public String getTarget() { return target; } public void setTarget(String pTarget) { target = pTarget; } public String getMasterDetail() { return masterDetail; } public void setMasterDetail(String pMasterDetail) { masterDetail = pMasterDetail; } public String getTargetDocumentation() { return targetDocumentation; } public void setTargetDocumentation(String pTargetDocumentation) { targetDocumentation = pTargetDocumentation; } /** * convert this TopicLink to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for TopicLink */ public TopicLink() { } /** * construct a TopicLink from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pTopicLinkTriple * - the triple to construct me from */ public TopicLink(TripleQuery query, Triple pTopicLinkTriple) { this(query, pTopicLinkTriple.getSubject().toString()); } // constructor /** * construct a TopicLink from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public TopicLink(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query .selectSingle(pageid, "Property:TopicLink_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple sourceRoleTriple = query.selectSingle(pageid, "sourceRole", null); if (sourceRoleTriple == null) sourceRoleTriple = query.selectSingle(pageid, "Property:TopicLink_sourceRole", null); if (sourceRoleTriple != null) sourceRole = sourceRoleTriple.getObject().toString(); Triple sourceMultipleTriple = query.selectSingle(pageid, "sourceMultiple", null); if (sourceMultipleTriple == null) sourceMultipleTriple = query.selectSingle(pageid, "Property:TopicLink_sourceMultiple", null); if (sourceMultipleTriple != null) sourceMultiple = sourceMultipleTriple.getObject().toString(); Triple sourceTriple = query.selectSingle(pageid, "source", null); if (sourceTriple == null) sourceTriple = query.selectSingle(pageid, "Property:TopicLink_source", null); if (sourceTriple != null) source = sourceTriple.getObject().toString(); Triple sourceDocumentationTriple = query.selectSingle(pageid, "sourceDocumentation", null); if (sourceDocumentationTriple == null) sourceDocumentationTriple = query.selectSingle(pageid, "Property:TopicLink_sourceDocumentation", null); if (sourceDocumentationTriple != null) sourceDocumentation = sourceDocumentationTriple.getObject().toString(); Triple targetRoleTriple = query.selectSingle(pageid, "targetRole", null); if (targetRoleTriple == null) targetRoleTriple = query.selectSingle(pageid, "Property:TopicLink_targetRole", null); if (targetRoleTriple != null) targetRole = targetRoleTriple.getObject().toString(); Triple targetMultipleTriple = query.selectSingle(pageid, "targetMultiple", null); if (targetMultipleTriple == null) targetMultipleTriple = query.selectSingle(pageid, "Property:TopicLink_targetMultiple", null); if (targetMultipleTriple != null) targetMultiple = targetMultipleTriple.getObject().toString(); Triple targetTriple = query.selectSingle(pageid, "target", null); if (targetTriple == null) targetTriple = query.selectSingle(pageid, "Property:TopicLink_target", null); if (targetTriple != null) target = targetTriple.getObject().toString(); Triple masterDetailTriple = query.selectSingle(pageid, "masterDetail", null); if (masterDetailTriple == null) masterDetailTriple = query.selectSingle(pageid, "Property:TopicLink_masterDetail", null); if (masterDetailTriple != null) masterDetail = masterDetailTriple.getObject().toString(); Triple targetDocumentationTriple = query.selectSingle(pageid, "targetDocumentation", null); if (targetDocumentationTriple == null) targetDocumentationTriple = query.selectSingle(pageid, "Property:TopicLink_targetDocumentation", null); if (targetDocumentationTriple != null) targetDocumentation = targetDocumentationTriple.getObject().toString(); init(query); } // constructor for TopicLink // >>>{user defined topic code}{TopicLink}{TopicLink} Topic sourceTopic = null; Topic targetTopic = null; // <<<{user defined topic code}{TopicLink}{TopicLink} } // class TopicLink /** * Manager for TopicLink */ static class TopicLinkManager extends TopicBase { public String topicName = "TopicLink"; public List<TopicLink> mTopicLinks = new ArrayList<TopicLink>(); public Map<String, TopicLink> mTopicLinkMap = new LinkedHashMap<String, TopicLink>(); /** * add a new TopicLink */ public TopicLink add(TopicLink pTopicLink) { mTopicLinks.add(pTopicLink); mTopicLinkMap.put(pTopicLink.getPageid(), pTopicLink); return pTopicLink; } /** * add a new TopicLink from the given triple */ public TopicLink add(TripleQuery query, Triple pTopicLinkTriple) { TopicLink lTopicLink = new TopicLink(query, pTopicLinkTriple); add(lTopicLink); return lTopicLink; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public TopicLinkManager() { } // construct me from the given triple Query query public TopicLinkManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicLinkQuery = query.query(null, "isA", "TopicLink"); for (Triple lTopicLinkTriple : lTopicLinkQuery.getTriples()) { add(query, lTopicLinkTriple); } // then the SMW triplestore lTopicLinkQuery = query.query(null, "Property:IsA", "TopicLink"); for (Triple lTopicLinkTriple : lTopicLinkQuery.getTriples()) { add(query, lTopicLinkTriple); } init(query); } // constructor for TopicLink Manager // >>>{user defined topicmanager code}{TopicLink}{TopicLink} // <<<{user defined topicmanager code}{TopicLink}{TopicLink} } // class TopicLink Manager } @{ // global variables // will only be set if tripleStore argument is available e.g. not for dialogs Topic maintopic=null; TripleQuery query=null; TripleQuery topics=null; ContextManager mContextManager=null; TopicManager mTopicManager=null; String maintopicName=null; if (tripleStore!=null) { query=tripleStore.query(); topics=query.query(null,"isA","Topic"); mContextManager=new ContextManager(tripleStore); mTopicManager=new TopicManager(query); // PropertyManager mPropertyManager=new PropertyManager(query); // TopicLinkManager mTopicLinkManager=new TopicLinkManager(query); // SMW_TypeManager mSMW_TypeManager=new SMW_TypeManager(query); mTopicManager.configureTopics(); maintopicName=wikiTask.getParams(); if (maintopicName!=null) { maintopic=mTopicManager.byName(maintopicName); } } } </source> 6f2bba5c9699ea7d3c55d1dc74cafd751d1d9a9d Office 0 32 70 2015-11-05T19:44:38Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:36Z wikitext text/x-wiki == Introduction == The templates on this page are {{Link|target=Template:Wikitask|title=Wikitask}} helper templates to work with Office Documents. The Java library being used for Microsoft Office Documents is {{Link|target=https://poi.apache.org/|title=Apache POI}}. For the Access to Adobe Portable Document Files {{Link|target=https://pdfbox.apache.org/|title=Apache PDFBox}} is used. === Supported Document Formats === {| class='wikitable sortable' ! Logo ! Format ! Documentation ! Stackoverflow ! Tutorial example |- | <img src='http://img4.wikia.nocookie.net/__cb20110818174528/logopedia/images/thumb/b/bb/Microsoft_Word_2010_Icon.svg/80px-Microsoft_Word_2010_Icon.svg.png'/> | {{Link|target=Office#Word|title=Word docx}} | {{Link|target=http://poi.apache.org/document/quick-guide-xwpf.html|title=XWPF}} | {{Link|target=http://stackoverflow.com/questions/tagged/xwpf|title=xwpf}} | {{Link|target=WikiTaskTutorial/Word}} |- | <img src='http://img3.wikia.nocookie.net/__cb20130608224647/logopedia/images/thumb/4/43/Office_Word_2000.svg/80px-Office_Word_2000.svg.png'/> | {{Link|target=Office#Word97|title=Word97 doc}} | {{Link|target=http://poi.apache.org/document/quick-guide.html|title=HWPF}} | {{Link|target=http://stackoverflow.com/questions/tagged/hwpf|title=hwpf}} | {{Link|target=WikiTaskTutorial/Word97}} |- | <img src='http://img2.wikia.nocookie.net/__cb20120509174748/logopedia/images/thumb/3/38/It%27s_EXCELlent!.png/80px-It%27s_EXCELlent!.png'/> | {{Link|target=Office#Excel|title=Excel xlsx}} | {{Link|target=https://poi.apache.org/spreadsheet/quick-guide.html|title=HSSF+XSSF}} | {{Link|target=http://stackoverflow.com/questions/tagged/xssf|title=xssf}} | {{Link|target=WikiTaskTutorial/Excel}} |- | <img src='http://img3.wikia.nocookie.net/__cb20120507131818/logopedia/images/thumb/1/1c/Excel.gif/80px-Excel.gif'/> | {{Link|target=Office#Excel97|title=Excel 97 xls}} | {{Link|target=https://poi.apache.org/spreadsheet/quick-guide.html|title=HSSF+XSSF}} {{Link|target=https://poi.apache.org/spreadsheet/diagram1.html|title=HSSF UML diagram}} | {{Link|target=http://stackoverflow.com/questions/tagged/hssf|title=hssf}} | {{Link|target=WikiTaskTutorial/Excel97}} |- | <img src='http://img3.wikia.nocookie.net/__cb20120509173954/logopedia/images/thumb/0/04/PowerPoint.png/80px-PowerPoint.png'/> | {{Link|target=Office#Powerpoint|title=Powerpoint pptx}} | {{Link|target=http://poi.apache.org/slideshow/xslf-cookbook.html|title=XSLF}} | {{Link|target=http://stackoverflow.com/questions/tagged/xslf|title=xslf}} | {{Link|target=WikiTaskTutorial/Powerpoint}} |- | <img src='http://img3.wikia.nocookie.net/__cb20130617071432/logopedia/images/thumb/f/ff/Office_PowerPoint_2000.svg/80px-Office_PowerPoint_2000.svg.png'/> | {{Link|target=Office#Powerpoint97|title=Powerpoint97 ppt}} | {{Link|target=http://poi.apache.org/slideshow/how-to-shapes.html|title=HSLF}} | {{Link|target=http://stackoverflow.com/questions/tagged/hslf|title=hslf}} | {{Link|target=WikiTaskTutorial/Powerpoint97}} |- | <img src='http://www.adobe.com/images/pdficon_large.png' width='64px'/> | Portable Document Format pdf | {{Link|https://pdfbox.apache.org/|title=PDF}} | {{Link|target=http://stackoverflow.com/questions/tagged/pdfbox|title=pdfbox}} | {{Link|target=WikiTaskTutorial/Portable Document Format}} |- | <img src='http://www.lenashore.com/wp-content/uploads/2014/01/vc-ard.png' width='64px'/> | VCard vcf | {{Link|https://tools.ietf.org/html/rfc6350|title=VCard}} | {{Link|target=http://stackoverflow.com/questions/tagged/vcard|title=vcard}} | {{Link|target=WikiTaskTutorial/VCard}} |} The above table shows the supported Document Formats and has links to the Apache POI documentation, corressponding Stackoverflow questions and the WikiTask tutorial example for each document format. == Templates == === template structure === The following templates have a common structure. First the arguments are declared: ==== @args: arguments ==== <source lang='java' id='args'> @args() { String title String logo org.sidif.wiki.WikiTask wikiTask } </source> The argument/parameter wikiTask holds the information how the template is called. The input can e.g. be fetched from wikiTask.getInput(). It should contain the URL of a Microsoft Office Document ==== @import: import statements ==== <source lang='java' id='import'> @import java.net.URL @import org.apache.poi.xwpf.usermodel.XWPFDocument; @import org.apache.poi.xwpf.usermodel.XWPFParagraph </source> The import statements are specific to the Office document format being used. See [[{{FULLPAGENAME}}#Supported_Microsoft_Office_Document_Formats]]. ==== java code and class declaration ==== <source lang='java' id='class'> @{ class WordDocx { ... public WordDocx(String url) { ... } } // WordDocx WordDocx docx=new WordDocx(wikiTask.getInput()); } </source> In a Java Code section <nowiki>@{...}</nowiki> a class corresponding to the Microsoft Office Document Format is declared. The constructor takes a url as a parameter. From such a url e.g. http://somedomain/somedocument.doc the Document is fetched. ==== constructor and error handling ==== <source lang='java' id='errorhandling'> public XWPFDocument doc; public Throwable error; public WordDocx(String url) { try { InputStream is = new URL(url).openStream(); doc = new XWPFDocument(is); } catch (Throwable th) { error=th; } } </source> The constructor tries to open the document as the corresponding Apache POI document type. E.g. a docx document is openend as XWPFDocument. If this fails the Exception/Throwable caught will be available in the member variable error. === Word === {| class='wikitable sortable' ! Logo ! Format ! Apache POI documentation ! Stackoverflow ! Tutorial example |- | <img src='http://img4.wikia.nocookie.net/__cb20110818174528/logopedia/images/thumb/b/bb/Microsoft_Word_2010_Icon.svg/80px-Microsoft_Word_2010_Icon.svg.png'/> | Word docx | {{Link|target=http://poi.apache.org/document/quick-guide-xwpf.html|title=XWPF}} | {{Link|target=http://stackoverflow.com/questions/tagged/xwpf|title=xwpf}} | {{Link|target=WikiTaskTutorial/Word}} |} <source lang='java' id='word'> @args() { String title String logo org.sidif.wiki.WikiTask wikiTask } @import java.net.URL @import org.apache.poi.xwpf.usermodel.XWPFDocument; @import org.apache.poi.xwpf.usermodel.XWPFParagraph; @{ class WordDocx { public XWPFDocument doc; public Throwable error; public WordDocx(String url) { try { InputStream is = new URL(url).openStream(); doc = new XWPFDocument(is); } catch (Throwable th) { error=th; } } } // WordDocx WordDocx docx=new WordDocx(wikiTask.getInput()); } </source> === Word97 === {| class='wikitable sortable' ! Logo ! Format ! Apache POI documentation ! Stackoverflow ! Tutorial example |- | <img src='http://img3.wikia.nocookie.net/__cb20130608224647/logopedia/images/thumb/4/43/Office_Word_2000.svg/80px-Office_Word_2000.svg.png'/> | Word97 doc | {{Link|target=http://poi.apache.org/document/quick-guide.html|title=HWPF}} | {{Link|target=http://stackoverflow.com/questions/tagged/hwpf|title=hwpf}} | {{Link|target=WikiTaskTutorial/Word97}} |} <source lang='java' id='word97'> @args() { String title String logo org.sidif.wiki.WikiTask wikiTask } @import java.net.URL @import org.apache.poi.hwpf.HWPFDocument; @import org.apache.poi.hwpf.extractor.WordExtractor; @import org.apache.poi.hwpf.usermodel.Range; @import org.apache.poi.poifs.filesystem.POIFSFileSystem; @{ class WordDoc { public HWPFDocument doc; public WordExtractor we; public Range range; public Throwable error; public WordDoc(String url) { try { InputStream is = new URL(url).openStream(); POIFSFileSystem fs = new POIFSFileSystem(is); doc = new HWPFDocument(fs); we = new WordExtractor(doc); range = doc.getRange(); } catch (Throwable th) { error=th; } } } // WordDoc WordDoc doc=new WordDoc(wikiTask.getInput()); } </source> === Excel === {| class='wikitable sortable' ! Logo ! Format ! Apache POI documentation ! Stackoverflow ! Tutorial example |- | <img src='http://img2.wikia.nocookie.net/__cb20120509174748/logopedia/images/thumb/3/38/It%27s_EXCELlent!.png/80px-It%27s_EXCELlent!.png'/> | Excel xlsx | {{Link|target=https://poi.apache.org/spreadsheet/quick-guide.html|title=HSSF+XSSF}} | {{Link|target=http://stackoverflow.com/questions/tagged/xssf|title=xssf}} | {{Link|target=WikiTaskTutorial/Excel}} |} <source lang='java' id='excel'> @args() { String title String logo org.sidif.wiki.WikiTask wikiTask } @import java.net.URL @import org.apache.poi.ss.usermodel.Cell @import org.apache.poi.ss.usermodel.Row @import org.apache.poi.xssf.usermodel.XSSFSheet @import org.apache.poi.xssf.usermodel.XSSFWorkbook @import org.apache.poi.xssf.usermodel.XSSFCell @import org.apache.poi.xssf.usermodel.XSSFRow @{ class Excel { public XSSFWorkbook workbook =null; public Throwable error; public List<List<String>> getSheetContent(XSSFSheet sheet) { List<List<String>> result=new ArrayList<List<String>>(); Iterator<Row> rows = sheet.rowIterator(); while (rows.hasNext()) { XSSFRow row = (XSSFRow) rows.next(); Iterator<Cell> cells = row.cellIterator(); List<String> rowList=new ArrayList<String>(); while (cells.hasNext()) { XSSFCell cell = (XSSFCell) cells.next(); String cellValue = cell.toString(); if (!"".equals(cellValue)) rowList.add(cellValue); } if (rowList.size()>0) result.add(rowList); } return result; } public Excel(String url) { // http://stackoverflow.com/questions/5836965/how-to-open-xlsx-files-with-poi-ss try { InputStream is = new URL(url).openStream(); workbook = new XSSFWorkbook(is); } catch (Throwable th) { error=th; } } } // Excel Excel excel=new Excel(wikiTask.getInput()); } </source> === Excel97 === {| class='wikitable sortable' ! Logo ! Format ! Apache POI documentation ! Stackoverflow ! Tutorial example |- | <img src='http://img3.wikia.nocookie.net/__cb20120507131818/logopedia/images/thumb/1/1c/Excel.gif/80px-Excel.gif'/> | Excel97 xls | {{Link|target=https://poi.apache.org/spreadsheet/quick-guide.html|title=HSSF+XSSF}} {{Link|target=https://poi.apache.org/spreadsheet/diagram1.html|title=HSSF UML diagram}} | {{Link|target=http://stackoverflow.com/questions/tagged/hssf|title=hssf}} | {{Link|target=WikiTaskTutorial/Excel97}} |} <source lang='java' id='excel97'> @args() { String title String logo org.sidif.wiki.WikiTask wikiTask } @import java.net.URL @import org.apache.poi.ss.usermodel.Row @import org.apache.poi.ss.usermodel.Cell @import org.apache.poi.hssf.usermodel.HSSFSheet; @import org.apache.poi.hssf.usermodel.HSSFWorkbook; @import org.apache.poi.hssf.usermodel.HSSFCell; @import org.apache.poi.hssf.usermodel.HSSFRow; @{ class Excel { public HSSFWorkbook workbook =null; public Throwable error; public List<List<String>> getSheetContent(HSSFSheet sheet) { List<List<String>> result=new ArrayList<List<String>>(); Iterator<Row> rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); Iterator<Cell> cells = row.cellIterator(); List<String> rowList=new ArrayList<String>(); int nonempty=0; while (cells.hasNext()) { HSSFCell cell = (HSSFCell) cells.next(); String cellValue = cell.toString(); if (!"".equals(cellValue)) { nonempty++; rowList.add(cellValue); } else { rowList.add(""); } } if (nonempty>0) result.add(rowList); } return result; } public Excel(String url) { // http://stackoverflow.com/questions/5836965/how-to-open-xlsx-files-with-poi-ss try { InputStream is = new URL(url).openStream(); workbook = new HSSFWorkbook(is); } catch (Throwable th) { error=th; } } } // Excel Excel excel=new Excel(wikiTask.getInput()); } </source> === Powerpoint === {| class='wikitable sortable' ! Logo ! Format ! Apache POI documentation ! Stackoverflow ! Tutorial example |- | <img src='http://img3.wikia.nocookie.net/__cb20120509173954/logopedia/images/thumb/0/04/PowerPoint.png/80px-PowerPoint.png'/> | Powerpoint pptx | {{Link|target=http://poi.apache.org/slideshow/xslf-cookbook.html|title=XSLF}} | {{Link|target=http://stackoverflow.com/questions/tagged/xslf|title=xslf}} | {{Link|target=WikiTaskTutorial/Powerpoint}} |} <source lang='java' id='powerpoint'> @args() { String title String logo org.sidif.wiki.WikiTask wikiTask } @import java.net.URL @import org.apache.poi.ss.usermodel.Cell @import org.apache.poi.xslf.usermodel.XMLSlideShow; @import org.apache.poi.xslf.usermodel.XSLFCommentAuthors @import org.apache.poi.xslf.usermodel.XSLFComments @import org.apache.poi.xslf.usermodel.XSLFCommonSlideData @import org.apache.poi.xslf.usermodel.XSLFNotes @import org.apache.poi.xslf.usermodel.XSLFRelation @import org.apache.poi.xslf.usermodel.XSLFSlide @import org.apache.poi.xslf.usermodel.XSLFSlideLayout @import org.apache.poi.xslf.usermodel.XSLFSlideMaster @{ class Powerpoint { public XMLSlideShow slideshow=null; public List<XSLFSlide> slides=null; public Throwable error; public Powerpoint(String url) { try { InputStream is = new URL(url).openStream(); slideshow = new XMLSlideShow(is); slides = slideshow.getSlides(); } catch (Throwable th) { error=th; } } } // Powerpoint Powerpoint powerpoint=new Powerpoint(wikiTask.getInput()); } </source> === Powerpoint97 === {| class='wikitable sortable' ! Logo ! Format ! Apache POI documentation ! Stackoverflow ! Tutorial example |- | <img src='http://img3.wikia.nocookie.net/__cb20130617071432/logopedia/images/thumb/f/ff/Office_PowerPoint_2000.svg/80px-Office_PowerPoint_2000.svg.png'/> | Powerpoint97 ppt | {{Link|target=http://poi.apache.org/slideshow/how-to-shapes.html|title=HSLF}} | {{Link|target=http://stackoverflow.com/questions/tagged/hslf|title=hslf}} | {{Link|target=WikiTaskTutorial/Powerpoint97}} |} <source lang='java' id='powerpoint97'> @args() { String title String logo org.sidif.wiki.WikiTask wikiTask } @import java.net.URL @import org.apache.poi.hslf.usermodel.SlideShow @import org.apache.poi.hslf.model.Slide @{ class Powerpoint { public SlideShow slideshow=null; public Slide[] slides=null; public Throwable error; public Powerpoint(String url) { try { InputStream is = new URL(url).openStream(); slideshow = new SlideShow(is); is.close(); slides = slideshow.getSlides(); } catch (Throwable th) { error=th; } } } // Powerpoint Powerpoint powerpoint=new Powerpoint(wikiTask.getInput()); } </source> === PDF === {| class='wikitable sortable' ! Logo ! Format ! Apache documentation ! Stackoverflow ! Tutorial example |- | <img src='http://www.adobe.com/images/pdficon_large.png' width='64px'/> | Portable Document Format pdf | {{Link|https://pdfbox.apache.org/|title=PDF}} | {{Link|target=http://stackoverflow.com/questions/tagged/pdfbox|title=pdfbox}} | {{Link|target=WikiTaskTutorial/Portable Document Format}} |} <source lang='java' id='pdf'> @args() { String title String logo org.sidif.wiki.WikiTask wikiTask } @import java.net.URL @import org.apache.pdfbox.pdmodel.PDDocument @import org.apache.pdfbox.pdmodel.PDPage @import org.apache.pdfbox.util.PDFTextStripper @{ /** * Portable Document File extractor help */ class PDF { public Throwable error; PDDocument doc; PDFTextStripper pdfStripper; /** * construct this PDF from the given url */ public PDF(String url) { try { // might want to switch off logging here to improve performance String[] loggers = { "org.apache.pdfbox.util.PDFStreamEngine", "org.apache.pdfbox.util", "org.apache.pdfbox.util.PDFStreamEngine", "org.apache.pdfbox.pdfparser.PDFObjectStreamParser", "org.apache.pdfbox.cos.COSDocument", "org.apache.pdfbox.pdmodel.font.PDSimpleFont", "org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap", "org.apache.pdfbox.pdmodel.graphics.color.PDSeparation", "org.apache.pdfbox.pdmodel.graphics.color.PDColorState", "org.apache.pdfbox.pdmodel.graphics.color.PDICCBased", "org.apache.pdfbox.pdfparser.PDFObjectStreamParser" }; for (String logger : loggers) { org.apache.log4j.Logger logpdfengine = org.apache.log4j.Logger .getLogger(logger); logpdfengine.setLevel(org.apache.log4j.Level.OFF); } InputStream is = new URL(url).openStream(); doc=PDDocument.load(is); pdfStripper = new PDFTextStripper(); } catch(Throwable th) { error=th; } } public String getPageText(int page) { String result="?"; try { pdfStripper.setStartPage(page); pdfStripper.setEndPage(page); result=pdfStripper.getText(doc); } catch(Throwable th) { error=th; result="Error: "+th.getMessage(); } return result; } } // don't create this here ... but might make tutorial examples fail // PDF pdf=new PDF(wikiTask.getInput()); } </source> === VCard === {| class='wikitable sortable' ! Logo ! Format ! Documentation ! Stackoverflow ! Tutorial example |- | <img src='http://www.lenashore.com/wp-content/uploads/2014/01/vc-ard.png' width='64px'/> | VCard vcf | {{Link|https://tools.ietf.org/html/rfc6350|title=VCard}} | {{Link|target=http://stackoverflow.com/questions/tagged/vcard|title=vcard}} | {{Link|target=WikiTaskTutorial/VCard}} |} <source lang='java' id='vcard'> @args() { org.sidif.wiki.WikiTask wikiTask } @import java.net.URL @import ezvcard.Ezvcard @import ezvcard.VCard @import ezvcard.property.Email @import ezvcard.property.Address @import ezvcard.property.Title @import ezvcard.property.Telephone @import ezvcard.property.Note @{ /** * holder for a VCard */ class VCardHolder { String text; Throwable error; VCard vcard; /** * construct a VCard from the given url */ public VCardHolder(String url) { try { InputStream is = new URL(url).openStream(); text=org.apache.commons.io.IOUtils.toString(is, "UTF-8"); vcard = Ezvcard.parse(text).first(); } catch (Throwable th) { error=th; } } } VCardHolder vcardHolder=new VCardHolder(wikiTask.getInput()); } @def vcardAddressAsTableRow(Address address) { !@(address.getTypes().toArray()[0]) address |@address.getStreetAddress()<br>@address.getPostalCode() @address.getLocality()<br>@address.getCountry() |- } @def vcardPhoneAsTableRow(Telephone phone) { !@if (phone.getTypes().size()>0) { @phone.getTypes().toArray()[0] } phone |<nowiki>@phone.getText()</nowiki> |- } @def vcardNoteAsTableRow(Note note) { !note |<nowiki>@note.getValue()</nowiki> |- } @def vcardTitleAsTableRow(Title title) { ! @if (title.getType()) { @title.getType() } title |@title.getValue() |- } @def vcardAsTable(VCard vcard) { @("{|") class='wikitable sortable' !fullname: |@vcard.getFormattedName().getValue() |- @for (Title title:vcard.getTitles()) { @vcardTitleAsTableRow(title); } !firstname: |@vcard.getStructuredName().getGiven() |- !lastname: |@vcard.getStructuredName().getFamily() |- !organization: |@if (vcard.getOrganization()) { @vcard.getOrganization().getValues().get(0) } |- @for (Address address:vcard.getAddresses()) { @vcardAddressAsTableRow(address) } @for (Email email : vcard.getEmails()){ !email: |@email.getValue() |- } @for (Telephone phone : vcard.getTelephoneNumbers()) { @vcardPhoneAsTableRow(phone) } @for (Note note : vcard.getNotes()) { @vcardNoteAsTableRow(note) } @("|}") } </source> d1ee21e982a373e2b614ef72ea94e6247028b0e3 Topic 0 33 71 2015-11-05T19:44:40Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:39Z wikitext text/x-wiki == Meta == === WikiTask === {{ContextWikitask |context=MetaModel }} === sidif === <source lang='xml' id='sidif'> # # Context:MetaModel # MetaModel isA Context "MetaModel" is name of it # #Context # Context isA Topic "Context" is name of it "Contexts" is pluralName of it "A Context groups some topics like a Namespace/Package" is documentation of it "A Context groups some topics like a Namespace/Package" is wikiDocumentation of it "File:Registry.png" is icon of it "/images/d/d2/Registry.png" is iconUrl of it "property" is defaultstoremode of it "MetaModel" is context of it Context_name addsTo it Context_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it 1 is sortPos of it true is primaryKey of it true is mandatory of it 80 is size of it false is uploadable of it "Name of the context" is documentation of it false is isLink of it "Context" is topic of it # #Property # Property isA Topic "Property" is name of it "Properties" is pluralName of it "a Property is a Feature/Attribute of a Topic" is documentation of it "see * https://semantic-mediawiki.org/wiki/Help:Properties_and_types * https://semantic-mediawiki.org/wiki/Help:Special_properties * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes" is wikiDocumentation of it "File:Element_into_input.png" is icon of it "/images/6/6a/Element_into_input.png" is iconUrl of it "property" is defaultstoremode of it "MetaModel" is context of it Property_name addsTo it Property_label addsTo it Property_type addsTo it Property_index addsTo it Property_sortPos addsTo it Property_primaryKey addsTo it Property_mandatory addsTo it Property_namespace addsTo it Property_size addsTo it Property_uploadable addsTo it Property_defaultValue addsTo it Property_inputType addsTo it Property_allowedValues addsTo it Property_documentation addsTo it Property_values_from addsTo it Property_showInGrid addsTo it Property_isLink addsTo it Property_nullable addsTo it # properties of Property # property name Property_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it 1 is sortPos of it true is primaryKey of it true is mandatory of it 50 is size of it false is uploadable of it "The name of the property" is documentation of it false is isLink of it "Property" is topic of it # property label Property_label isA Property "label" is name of it "label" is label of it "Text" is type of it 2 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The label to be shown when in a form" is documentation of it false is isLink of it "Property" is topic of it # property type Property_type isA Property "type" is name of it "type" is label of it "Page" is type of it 3 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "Text" is defaultValue of it "The type of a Property" is documentation of it false is isLink of it "Property" is topic of it # property index Property_index isA Property "index" is name of it "index" is label of it "Number" is type of it 4 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "A positive number that specifies at which position of a Topic the given property should show. The first property to show has the index 1 each following property has an index that is +1 of the previous." is documentation of it true is showInGrid of it false is isLink of it "Property" is topic of it # property sortPos Property_sortPos isA Property "sortPos" is name of it "sortPos" is label of it "Number" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 3 is size of it false is uploadable of it "If none empty >0 this is the position in the sort clause of this property. This is used when displaying list of the topic as the default sort order and it is used for selecting topics . E.g. Sortpos 1 for attribute lastname and sortpos 2 for attribute firstname leads to sort by lastname,firstname" is documentation of it false is isLink of it "Property" is topic of it # property primaryKey Property_primaryKey isA Property "primaryKey" is name of it "primary key" is label of it "Boolean" is type of it 6 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "is this property a primary key of it's topic?" is documentation of it false is isLink of it "Property" is topic of it # property mandatory Property_mandatory isA Property "mandatory" is name of it "mandatory" is label of it "Boolean" is type of it 7 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "Specifies that this field must be filled in by the user. Note: mandatory should not be used in conjunction with hidden. Use of both in any field will cause the mandatory check on any field to fail when the form is saved. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag" is documentation of it false is isLink of it "Property" is topic of it # property namespace Property_namespace isA Property "namespace" is name of it "namespace" is label of it "Text" is type of it 8 is index of it false is primaryKey of it false is mandatory of it 20 is size of it false is uploadable of it "namespace prefix" is documentation of it false is isLink of it "Property" is topic of it # property size Property_size isA Property "size" is name of it "size" is label of it "Number" is type of it 9 is index of it false is primaryKey of it false is mandatory of it 3 is size of it false is uploadable of it "the display size of the field for the property" is documentation of it false is isLink of it "Property" is topic of it # property uploadable Property_uploadable isA Property "uploadable" is name of it "uploadable" is label of it "Boolean" is type of it 10 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "Specifies that a link should be placed next to this field, that opens a popup window to let the user upload a file; see 'Uploading files', below. See * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Uploading_files The type of the target property needs to be Page for this to work" is documentation of it false is isLink of it "Property" is topic of it # property defaultValue Property_defaultValue isA Property "defaultValue" is name of it "default" is label of it "Code" is type of it 11 is index of it false is primaryKey of it false is mandatory of it 80 is size of it false is uploadable of it "default value - Specifies a default value for this field. For date-related fields, default=now will set the value to the current date and possibly time. For text fields, default=current user will set the value to the username of the user adding this page. For the checkbox input type, default=yes will check the checkbox by default. (The 'checkboxes' input type, on the other hand, like the 'listbox' type, requires specifying the actual values, like default=Value A, Value C.) You can also include templates, parser functions, and magic words within the 'default=' value. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag (default)" is documentation of it false is isLink of it "Property" is topic of it # property inputType Property_inputType isA Property "inputType" is name of it "inputType" is label of it "Text" is type of it 12 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "dropdown" is inputType of it "text, combobox, dropdown, textarea, tree, datetime, datepicker, timepicker, datetimepicker, menuselect,two listboxes, datecheck, regexp, radiobutton, googlemaps" is allowedValues of it "see * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>input type - Specifies the type of input this field will have in the form. If a field corresponds to an SMW property or Cargo field, the form will usually have the correct input type by default; otherwise the default is text. If the corresponding SMW property, or Cargo field, cannot be automatically determined, you can use the parameter 'property', or the parameters 'cargo table' and 'cargo field', to manually specify it (see below). The allowed set of input types is different for every semantic property type; see below for the full list of options. * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Allowed_input_types_for_data_types * http://www.mediawiki.org/wiki/Extension:Semantic_Forms_Inputs" is documentation of it false is isLink of it "Property" is topic of it # property allowedValues Property_allowedValues isA Property "allowedValues" is name of it "allowedValues" is label of it "Text" is type of it 13 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "There are two ways to specified allowed Values: # https://semantic-mediawiki.org/wiki/Help:Special_property_Allows_value. <br>Use [[Property:Allows_value]] to see which values are allowed for certain properties # http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>values=possible values - Specifies a set of either possible values or autocompletion values (depending on the input type) that this field can have, overriding whatever set of values may have been set from the Semantic MediaWiki property. This set of values is separated by commas by default, but the delimiter can be modified using the delimiter= parameter. If you specify any values method number 2 will be used here which might override any allowed Values specified with method number 1." is documentation of it false is isLink of it "Property" is topic of it # property documentation Property_documentation isA Property "documentation" is name of it "documentation" is label of it "Text" is type of it 14 is index of it false is primaryKey of it false is mandatory of it 500 is size of it false is uploadable of it "textarea" is inputType of it "The documentation for a property" is documentation of it false is isLink of it "Property" is topic of it # property values_from Property_values_from isA Property "values_from" is name of it "values from" is label of it "Code" is type of it 15 is index of it false is primaryKey of it false is mandatory of it 200 is size of it false is uploadable of it "textarea" is inputType of it "Specifies where to get the possible values to be displayed in a form from see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * values from property=property name - Similar to values=, but gets its values from the the set of all values that a certain SMW property points to. * values from category=category name - Similar to values=, but gets its values from the names of all pages belonging to a specific category. * values from concept=concept name - Similar to values=, but gets its values from the names of all pages belonging to a specific concept. * values from namespace=namespace name - Similar to values=, but gets its values from the names of all pages belonging to a specific namespace. (To get values from the main namespace, use 'Main' for the namespace name, or just leave it blank.) * values from url=URL identifier - Used only for autocompletion. Specifies that autocompletion should be based on the values retrieved from an outside URL; see Autocompleting on outside values for how to do this. * values from external data=variable name - Used for autocompletion. You need to have theExternal Data extension installed to be able to use this parameter. It specifies that autocompletion should be based on the data retrieved from an outside source. A large number of data sources are supported, including web APIs, regular wiki pages, files on the local server, databases and LDAP directories. See Autocompletion using External Data." is documentation of it false is isLink of it "Property" is topic of it # property showInGrid Property_showInGrid isA Property "showInGrid" is name of it "showInGrid" is label of it "Boolean" is type of it 16 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "true" is defaultValue of it "I am true if this property is displayed in the default list of properties for my topic as a column" is documentation of it true is showInGrid of it false is isLink of it "Property" is topic of it # property isLink Property_isLink isA Property "isLink" is name of it "isLink" is label of it "Boolean" is type of it 17 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "true if this Property is derived form a Link. It will not be exported to SiDIF separately and automatically be added by the Property Generator" is documentation of it false is showInGrid of it false is isLink of it "Property" is topic of it # property nullable Property_nullable isA Property "nullable" is name of it "allow nulls?" is label of it "Boolean" is type of it 18 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "false" is defaultValue of it "should nullvalues be allowed and value set to NULL when empty?" is documentation of it false is showInGrid of it false is isLink of it "Property" is topic of it # #SMW_Type # SMW_Type isA Topic "SMW_Type" is name of it "SMW_Types" is pluralName of it "an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes" is documentation of it "see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes" is wikiDocumentation of it "File:Component.png" is icon of it "/images/4/40/Component.png" is iconUrl of it "subobject" is defaultstoremode of it "MetaModel" is context of it SMW_Type_type addsTo it SMW_Type_documentation addsTo it SMW_Type_helppage addsTo it SMW_Type_typepage addsTo it SMW_Type_javaType addsTo it SMW_Type_type isA Property "type" is name of it "type" is label of it "Text" is type of it 1 is index of it true is primaryKey of it true is mandatory of it 50 is size of it false is uploadable of it "The Semantic MediaWiki type without the prefix e.g. Text, Number, Boolean" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_documentation isA Property "documentation" is name of it "type" is label of it "Text" is type of it 2 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The documentation of this Semantic Media Wiki type" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_helppage isA Property "helppage" is name of it "type" is label of it "URL" is type of it 3 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The url of the 'official' documentation page of this type" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_typepage isA Property "typepage" is name of it "typepage" is label of it "Page" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The Semantic Media Wiki Special page for this specific type e.g. Special:Types/Text, Special:Types/Boolean, Special:Types/Date, Special:Types/Number, Special:Types/Page" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_javaType isA Property "javaType" is name of it "java Type" is label of it "Text" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "Java mapping of this type" is documentation of it false is isLink of it "SMW_Type" is topic of it # #Topic # Topic isA Topic "Topic" is name of it "Topics" is pluralName of it "A Topic is a Concept/Class/Thing/Entity" is documentation of it "A Topic is a Concept/Class/Thing/Entity" is wikiDocumentation of it "File:Index.png" is icon of it "/images/master/a/ae/Index.png" is iconUrl of it "property" is defaultstoremode of it false is cargo of it "MetaModel" is context of it Topic_name addsTo it Topic_pluralName addsTo it Topic_icon addsTo it Topic_iconUrl addsTo it Topic_documentation addsTo it Topic_wikiDocumentation addsTo it Topic_defaultstoremode addsTo it Topic_listLimit addsTo it Topic_cargo addsTo it # properties of Topic # property name Topic_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it true is primaryKey of it true is mandatory of it 80 is size of it false is uploadable of it "The name of the topic" is documentation of it false is isLink of it "Topic" is topic of it # property pluralName Topic_pluralName isA Property "pluralName" is name of it "pluralName" is label of it "Text" is type of it 2 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The plural of a topic name. E.g. for the topic 'City' the pluralName is 'Cities'. If no pluralName is specified an 's' is appended. E.g. for the topic 'Book' the default pluralName is 'Books'" is documentation of it false is isLink of it "Topic" is topic of it # property icon Topic_icon isA Property "icon" is name of it "icon" is label of it "Page" is type of it 3 is index of it false is primaryKey of it false is mandatory of it "File" is namespace of it 55 is size of it true is uploadable of it "an Icon for the topic" is documentation of it false is showInGrid of it false is isLink of it "Topic" is topic of it # property iconUrl Topic_iconUrl isA Property "iconUrl" is name of it "icon Url" is label of it "URL" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 80 is size of it false is uploadable of it "text" is inputType of it "the url of an icon" is documentation of it false is showInGrid of it false is isLink of it "Topic" is topic of it # property documentation Topic_documentation isA Property "documentation" is name of it "documentation" is label of it "Text" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The plaintext documentation of a Topic. Please do not use markup for this." is documentation of it false is isLink of it "Topic" is topic of it # property wikiDocumentation Topic_wikiDocumentation isA Property "wikiDocumentation" is name of it "wikiDocumentation" is label of it "Text" is type of it 6 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "Documentation of the Topic using MediaWiki / Semantic Mediawiki markup" is documentation of it false is isLink of it "Topic" is topic of it # property defaultstoremode Topic_defaultstoremode isA Property "defaultstoremode" is name of it "default storemode" is label of it "Text" is type of it 7 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "radiobutton" is inputType of it "none,property,subobject" is allowedValues of it "The default storemode of the topic" is documentation of it false is isLink of it "Topic" is topic of it # property listLimit Topic_listLimit isA Property "listLimit" is name of it "list Limit" is label of it "Number" is type of it 8 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "200" is defaultValue of it "What is the default #ask list limit for this Topic?" is documentation of it true is showInGrid of it false is isLink of it "Topic" is topic of it # property cargo Topic_cargo isA Property "cargo" is name of it "use cargo" is label of it "Boolean" is type of it 9 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "Should the Topic be stored using the [https://www.mediawiki.org/wiki/Extension:Cargo Cargo Extension?]" is documentation of it false is showInGrid of it false is isLink of it "Topic" is topic of it # # Action # Action isA Topic "Action" is name of it servicetype addsTo it service addsTo it inputtype addsTo it input addsTo it actionpage addsTo it outputtype addsTo ti output addsTo it "MetaModel" is context of it # #TopicLink # TopicLink isA Topic "TopicLink" is name of it "TopicLinks" is pluralName of it "A TopicLink links two Concepts" is documentation of it "A TopicLink links two [[Concept:Topic]]s" is wikiDocumentation of it "File:Link.png" is icon of it "/images/f/fd/Link.png" is iconUrl of it "subobject" is defaultstoremode of it "MetaModel" is context of it TopicLink_name addsTo it TopicLink_source addsTo it TopicLink_sourceRole addsTo it TopicLink_sourceMultiple addsTo it TopicLink_sourceDocumentation addsTo it TopicLink_target addsTo it TopicLink_targetRole addsTo it TopicLink_targetMultiple addsTo it TopicLink_targetDocumentation addsTo it TopicLink_masterDetail addsTo it TopicLink_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The name of the topic link" is documentation of it false is isLink of it "TopicLink" is topic of it TopicLink_source isA Property "source" is name of it "source" is label of it "Page" is type of it 2 is index of it false is primaryKey of it true is mandatory of it 50 is size of it false is uploadable of it "dropdown" is inputType of it "the source of a topic Link" is documentation of it "concept=Topic" is values_from of it false is isLink of it "TopicLink" is topic of it TopicLink_sourceRole isA Property "sourceRole" is name of it "sourceRole" is label of it "Text" is type of it 3 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_sourceMultiple isA Property "sourceMultiple" is name of it "sourceMultiple" is label of it "Boolean" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_sourceDocumentation isA Property "sourceDocumentation" is name of it "source Doc" is label of it "Text" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 300 is size of it false is uploadable of it "textarea" is inputType of it "Documentation for the source Role" is documentation of it false is isLink of it "TopicLink" is topic of it TopicLink_target isA Property "target" is name of it "target" is label of it "Page" is type of it 6 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_targetRole isA Property "targetRole" is name of it "targetRole" is label of it "Text" is type of it 7 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_targetMultiple isA Property "targetMultiple" is name of it "sourceMultiple" is label of it "Boolean" is type of it 8 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_targetDocumentation isA Property "targetDocumentation" is name of it "target Doc" is label of it "Text" is type of it 9 is index of it false is primaryKey of it false is mandatory of it 300 is size of it false is uploadable of it "textarea" is inputType of it "Documentation for the target Role" is documentation of it false is isLink of it "TopicLink" is topic of it TopicLink_masterDetail isA Property "masterDetail" is name of it "masterDetail" is label of it "Boolean" is type of it 10 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "should the details be displayed in the same form and template? If no * for a 1:1 link there will be a linking attribute used and that can be selected. * for a 1:n link a link to the list of neighbours will be displayed if yes * for a 1:1 link the details * for a 1:n link" is documentation of it false is isLink of it "TopicLink" is topic of it # # TopicLinks # TopicLinks_containedProperties isA TopicLink "containedProperties" is name of it "topic" is sourceRole of it false is sourceMultiple of it "Topic" is source of it "properties" is targetRole of it true is targetMultiple of it "Property" is target of it TopicLinks_containedTopics isA TopicLink "containedTopics" is name of it "context" is sourceRole of it false is sourceMultiple of it "Context" is source of it "topics" is targetRole of it true is targetMultiple of it "Topic" is target of it TopicLinks_typeOfProperty isA TopicLink "typeOfProperty" is name of it "usedByProperties" is sourceRole of it true is sourceMultiple of it "Property" is source of it "the properties having this type" is sourceDocumentation of it "smw_type" is targetRole of it false is targetMultiple of it "SMW_Type" is target of it false is masterDetail of it "the smw_type being used by this property" is targetDocumentation of it # data Annotation_URI isA SMW_Type "Annotation URI" is type of it "Special:Types/Annotation_URI" is typepage of it "Holds URIs, but has some technical differences during export compared to the 'URL' type" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Annotation_URI" is helppage of it Boolean isA SMW_Type "Boolean" is type of it "Special:Types/Boolean" is typepage of it "Holds boolean (true/false) values" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Boolean" is helppage of it Code isA SMW_Type "Code" is type of it "Special:Types/Code" is typepage of it "Holds technical, pre-formatted texts (similar to type Text)" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Code" is helppage of it Date isA SMW_Type "Date" is type of it "Special:Types/Date" is typepage of it "Holds particular points in time" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Date" is helppage of it Email isA SMW_Type "Email" is type of it "Special:Types/Email" is typepage of it "Holds e-mail addresses" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Email" is helppage of it Geographic_coordinate isA SMW_Type "Geographic coordinate" is type of it "Special:Types/Geographic_coordinate" is typepage of it "Holds coordinates describing geographic locations" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Geographic_coordinate" is helppage of it Number isA SMW_Type "Number" is type of it "Special:Types/Number" is typepage of it "Holds integer and decimal numbers, with an optional exponent" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Number" is helppage of it Page isA SMW_Type "Page" is type of it "Special:Types/Page" is typepage of it "Holds names of wiki pages, and displays them as a link" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Page" is helppage of it Quantity isA SMW_Type "Quantity" is type of it "Special:Types/Quantity" is typepage of it "Holds values that describe quantities, containing both a number and a unit" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Quantity" is helppage of it Record isA SMW_Type "Record" is type of it "Special:Types/Record" is typepage of it "Allows saving compound property values that consist of a short list of values with fixed type and order" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Record" is helppage of it Telephone_number isA SMW_Type "Telephone number" is type of it "Special:Types/Telephone_number" is typepage of it "Holds international telephone numbers based on the [https://tools.ietf.org/html/rfc3966 RFC 3966 standard]" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Telephone_number" is helppage of it Temperature isA SMW_Type "Temperature" is type of it "Special:Types/Temperature" is typepage of it "Holds temperature values (similar to type Quantity)" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Temperature" is helppage of it Text isA SMW_Type "Text" is type of it "Special:Types/Text" is typepage of it "Holds text of arbitrary length" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Text" is helppage of it URL isA SMW_Type "URL" is type of it "Special:Types/URL" is typepage of it "Holds URIs, URNs and URLs" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_URL" is helppage of it </source> == wikiTasks == === Context === {{TopicWikitasks |context=MetaModel |topic=Context |input=sidif }} === Topic === {{TopicWikitasks |context=MetaModel |topic=Topic |input=sidif }} === Property=== {{TopicWikitasks |context=MetaModel |topic=Property |input=sidif |plural=Properties }} === TopicLink === {{TopicWikitasks |context=MetaModel |topic=TopicLink |input=sidif }} === SMW_Type === {{TopicWikitasks |context=MetaModel |topic=SMW_Type |input=sidif }} === TripleTableTask === {{wikitask|cmd=runtemplate|input=sidif|engine=Rythm|template=SiDIFTemplates#tripletable|targetpage={{FULLPAGENAMEE}}#tripletable}} === tripletable === == Background == <pre> topic [of (the) conversation] Gesprächsthema {n} topic Thema {n} Inhalt {m} Diskussionsthema {n} Gegenstand {m} [Thema] Thematik {f} Tagesordnungspunkt {m} Themengebiet {n} Gesprächsgegenstand {m} Fragenkomplex {m} Überbegriff {m} Sachthema {n} Themenbereich {m} Sachkreis {m} </pre> == Test == <source lang='java' id='test'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore com.bitplan.topic.TopicManager topicManager } @{ List<String> testList=new ArrayList<String>(); // global query variable TripleQuery query=tripleStore.query(); String pageid="Topic"; TripleQuery sourceQuery=query.query(pageid,"source",null); if (sourceQuery!=null) { for (Triple sourceTriple:sourceQuery.getTriples()) { String source=sourceTriple.getObject().toString(); testList.add(source); Triple roleTriple=query.selectSingle(source,"isA","Role"); if (roleTriple!=null) { testList.add(roleTriple.getSubject().toString()); } } } } @for (String test:testList) { * @test } </source> {{wikitask|cmd=runtemplate|input=sidif|engine=Rythm|template=test|targetpage={{FULLPAGENAMEE}}#testresult}} === testresult === * topicConfiguration * topicConfiguration * properties * properties == Links == === Freebase === https://developers.google.com/freebase/v1/topic-overview === Knowledge Graph === * http://www.google.com/insidesearch/features/search/knowledge.html * https://en.wikipedia.org/wiki/Knowledge_Graph * http://googleblog.blogspot.co.uk/2012/05/introducing-knowledge-graph-things-not.html === WikiData === https://www.wikidata.org/wiki/Wikidata:Main_Page === Asset Description Metadata Schema === * https://en.wikipedia.org/wiki/Asset_Description_Metadata_Schema === Property / Attribute === * http://english.stackexchange.com/questions/150529/what-is-the-difference-between-property-and-attribute === Semantic Web bei Jeckle === * {{Link|target=http://www.jeckle.de/files/tblSW.pdf|title=Originalartikel von Tim Berners Lee}} * http://www.jeckle.de/semanticWebServices/index.html === More Tim Berners Lee === * http://www.w3.org/DesignIssues/Topology.html See "Should links contain ancillary information?" ... => this means links are second class citizens ... see http://en.wikipedia.org/wiki/First-class_citizen === The network is the computer === * http://en.wikipedia.org/wiki/John_Gage === Semantics === http://en.wikipedia.org/wiki/Denotational_semantics [[Category:Topic]] 095c11183a05cb28b46c6309fadac0de492b9285 MetaModel 0 34 72 2015-11-05T19:44:42Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:41Z wikitext text/x-wiki __NOCACHE__ {{Context |name=MetaModel |storemode=property }} {{Context |name=Metamodel |storemode=none |viewmode=masterdetail }} === WikiTask === {{ContextWikitask |context=MetaModel }} == Model == {{Link|target=Topic}} feb851ecb5e0004bfa600e802a27b84ca6ca9f63 Concept:Context 108 35 73 2015-11-05T19:44:47Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:45Z wikitext text/x-wiki {{Topic |name=Context |pluralName=Contexts |icon=File:Registry.png |iconUrl=/images/d/d2/Registry.png |documentation=A Context groups some topics like a Namespace/Package |wikiDocumentation=A Context groups some topics like a Namespace/Package |defaultstoremode=property |context=MetaModel |storemode=property }} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Topic/{{FULLPAGENAME}}|title=edit Context}}<br> {{Topic |viewmode=masterdetail |storemode=none }} === Documentation === A Context groups some topics like a Namespace/Package === uml === <uml> class Context { Text name } Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Context name::+]] |Contexts see also * [[List of Contexts]] * [[Help:Context]] * [[Concept:Context]] * [[:Category:Context]] * [[:Template:Context]] * [[:Form:Context]] }} aebe58e2a66b2101670f5011425decbac9906653 Concept:Topic 108 36 74 2015-11-05T19:44:50Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:47Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=Topic |pluralName=Topics |icon=File:Index.png |iconUrl=/images/master/a/ae/Index.png |documentation=A Topic is a Concept/Class/Thing/Entity |wikiDocumentation=A Topic is a Concept/Class/Thing/Entity |defaultstoremode=property |cargo=false |context=MetaModel |storemode=property }} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Topic/{{FULLPAGENAME}}|title=edit Topic}}<br> {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === A Topic is a Concept/Class/Thing/Entity === uml === <uml> title Topic note as TopicDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as TopicNote A Topic is a Concept/Class/Thing/Entity end note class Topic { Text name Text pluralName Page icon URL iconUrl Text documentation Text wikiDocumentation Text defaultstoremode Number listLimit Boolean cargo Page context } TopicNote .. Topic Topic "topic (1)" -- "properties(*)" Property Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Topic name::+]] |Topics see also * [[List of Topics]] * [[Help:Topic]] * [[Concept:Topic]] * [[:Category:Topic]] * [[:Template:Topic]] * [[:Form:Topic]] topic links: * [[:Category:Property]] }} [[Category:Topic]] d9e9dcc6cf6f86267a20ca17b557f3d841e05141 Concept:TopicLink 108 37 75 2015-11-05T19:44:52Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:50Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=TopicLink |pluralName=TopicLinks |icon=File:Link.png |iconUrl=/images/f/fd/Link.png |wikiDocumentation=A TopicLink links two [[Concept:Topic]]s |documentation=A TopicLink links two Concepts |defaultstoremode=subobject |context=MetaModel |storemode=property }} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Topic/{{FULLPAGENAME}}|title=edit TopicLink}}<br> {{Topic |viewmode=masterdetail |storemode=none }} === Documentation === === uml === <uml> class TopicLink { Text name Text sourceRole Text sourceMultiple Page source Text sourceDocumentation Text targetRole Text targetMultiple Text target Boolean masterDetail Text targetDocumentation } ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[TopicLink source::+]] |TopicLinks see also * [[List of TopicLinks]] * [[Help:TopicLink]] * [[Concept:TopicLink]] * [[:Category:TopicLink]] * [[:Template:TopicLink]] * [[:Form:TopicLink]] }} [[Category:TopicLink]] 9e96c7ad394d1cfbfd5b09e4d2185745bc9752d6 Concept:Property 108 38 76 2015-11-05T19:44:55Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:53Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=Property |pluralName=Properties |icon=File:Element_into_input.png |iconUrl=/images/6/6a/Element_into_input.png |documentation=a Property is a Feature/Attribute of a Topic |wikiDocumentation=see * https://semantic-mediawiki.org/wiki/Help:Properties_and_types * https://semantic-mediawiki.org/wiki/Help:Special_properties * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |defaultstoremode=property |cargo= |context=MetaModel |storemode=property }} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Topic/{{FULLPAGENAME}}|title=edit Property}}<br> {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === see * https://semantic-mediawiki.org/wiki/Help:Properties_and_types * https://semantic-mediawiki.org/wiki/Help:Special_properties * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes === uml === <uml> title Property note as PropertyDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as PropertyNote a Property is a Feature/Attribute of a Topic end note class Property { Text name Text label Page type Number index Number sortPos Boolean primaryKey Boolean mandatory Text namespace Number size Boolean uploadable Code defaultValue Text inputType Text allowedValues Text documentation Code values_from Boolean showInGrid Boolean isLink Boolean nullable Page topic } PropertyNote .. Property Property "usedByProperties (*)" -- "smw_type(1)" SMW_Type Topic "topic (1)" -- "properties(*)" Property ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Property name::+]] |Properties see also * [[List of Properties]] * [[Help:Property]] * [[Concept:Property]] * [[:Category:Property]] * [[:Template:Property]] * [[:Form:Property]] topic links: * [[:Category:SMW_Type]] }} [[Category:Property]] 87c256537f0606d0ea70861740806677e4d98073 Concept:SMW Type 108 39 77 2015-11-05T19:44:58Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:55Z wikitext text/x-wiki {{Topic |name=SMW_Type |pluralName=SMW_Types |icon=File:Component.png |iconUrl=/images/4/40/Component.png |documentation=an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |wikiDocumentation=see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |defaultstoremode=subobject |context=MetaModel |storemode=property }} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Topic/{{FULLPAGENAME}}|title=edit SMW_Type}}<br> {{Topic |viewmode=masterdetail |storemode=none }} === Documentation === see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes === uml === <uml> class SMW_Type { Text documentation Text type Text typepage Text helppage Text javaType } ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[SMW_Type type::+]] |SMW_Types see also * [[List of SMW_Types]] * [[Help:SMW_Type]] * [[Concept:SMW_Type]] * [[:Category:SMW_Type]] * [[:Template:SMW_Type]] * [[:Form:SMW_Type]] }} [[Category:SMW_Type]] 3c836d94ccd15b59a7b55dad8062a84b54ab656f TopicGenerator 0 40 78 2015-11-05T19:44:59Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:44:58Z wikitext text/x-wiki __TOC__ === dialog === <source lang='java' id='dialog' cache='false'> @// Copyright (c) 2015 BITPlan GmbH @// @// This is a Wikitask / Rythm template that @// displays an AJAX GUI for generating SmartMediaWiki results @// @import org.sidif.wiki.Reference @import org.sidif.wiki.ReferenceManager @import org.sidif.wiki.Source @import org.sidif.wiki.PageCache @import org.sidif.wiki.WikiTask @import com.bitplan.mediawiki.japi.api.Page @import com.bitplan.mediawiki.japi.api.Rev @include(wiki.SiDIFTemplates.defs) @include(wiki.SiDIFTemplates.dialogdefs) @// get a link for the given pagetitle @def String getLink(String pageTitle, int revid) { String link=wikiTask.getServer()+wikiTask.getScriptpath()+"/index.php?title="+urlEncode(pageTitle); if (revid>0) { link+="&oldid="+revid; } return link; } @// get the parameters for the wikitask @def String getWikiTaskParams(String engine) { String params="?server="+urlEncode(wikiTask.getServer()); params+="&scriptpath="+urlEncode(wikiTask.getScriptpath()); params+="&page="+urlEncode(wikiTask.getPageTitle()); params+="&engine="+engine; return params; } @// run the given wikitask command @def doWikiTaskCmd(String cmd, String param) { @{ String icon="component"; String engine="Freemarker"; if ("runtemplate".equals(cmd)){ icon="media_play_green.png"; } if ("reset".equals(cmd)) { icon="refresh"; } if ("help".equals(cmd)) { icon="help"; } if ("debug".equals(cmd)) { icon="wrench"; } if ("refreshRef".equals(cmd)) { icon="refresh"; } String params=getWikiTaskParams(engine); } <a href='@(cmd)@(params)'>@(stockicon(icon,48,cmd,cmd))</a> } @// run the given wikitask command @def wikiTaskCmd(String cmd) { @doWikiTaskCmd(cmd,null) } @// run the given wikitask command with a parameter @def wikiTaskCmd(String cmd, String param) { @doWikiTaskCmd(cmd,param) } @// add styles for the generator @def generatorStyle(String i_____) { @(i_____) <style type="text/css"> @(i_____) // progress text that comes with progress bars @(i_____) // see http://stackoverflow.com/questions/12452594/how-can-i-add-label-inside-a-progress-bar-tag @(i_____) span.progresstext { @(i_____) font-family:'Arial'; @(i_____) position:relative; @(i_____) top:-1.5em; @(i_____) margin-left:50%;; @(i_____) font-size:small; @(i_____) } @(i_____) </style> } @// scripts for generators @def generatorScript() { <script> // JavaScript support for Y-Principle TopicGenerator // convert a string to make the first char lower case function firstToLower(string) { return string.charAt(0).toLowerCase() + string.slice(1); } // get the div where responses are shown function getResponseDiv() { var result=document.getElementById("response"); return result; } // get the div where errors are shown function getErrorDiv() { var result=document.getElementById("errorMessage"); return result; } // get the checkBox jquery object with the given id function getGeneratorElement(generatorId,postfix) { var result=$("#"+generatorId+postfix); return result; } // clear the given div function clearDiv(div) { div.innerHTML=''; } // add a TextElement with the given tag and message to the given parent function newTextElement(tag,msg) { var newElement=document.createElement(tag); var content = document.createTextNode(msg); newElement.appendChild(content); return newElement; } // add a message to the given div function addMessage(div, msg) { var newElement=newTextElement('pre',msg); div.appendChild(newElement); return newElement; } // progress on transfers from the server to the client (downloads) // see https://developer.mozilla.org/de/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest function updateProgress (oEvent) { if (oEvent.lengthComputable) { var percentComplete = oEvent.loaded / oEvent.total; // ... } else { // Unable to compute progress information since the total size is unknown } } // show an error Message // param errMsg: the message to show function errorMessage(errMsg) { var errDiv=getErrorDiv(); if (errDiv!=null) { addMessage(errDiv,errMsg); errDiv.style.display = 'block'; } else { alert(errMsg); } } // flag an error for the given id function flagError(id,msg) { setProgress(id,0,""); var checkBox=getGeneratorElement(id,""); var progresstext=getGeneratorElement(id,"_progress_pc"); var errorSpan=newTextElement('span','⚠ '+msg); errorSpan.style='color:red;font-size:14px'; progresstext[0].appendChild(errorSpan); return checkBox; } // handle an error that has been thrown function handleError(err,id) { flagError(id,err.message); // abusing checkBox as data lookup var checkBox=getGeneratorElement(id,""); var errMessage=checkBox[0].name+" ERROR:"+err.code+" "+err.name+" '"+err.message+"' line:"+err.lineNumber; errorMessage(errMessage); } // get the class name of the given object function getClass(obj) { if (typeof obj === "undefined") return "undefined"; if (obj === null) return "null"; return Object.prototype.toString.call(obj) .match(/^\[object\s(.*)\]$/)[1]; } // send the given form function sendForm(formData,action,id) { try { var oReq = new XMLHttpRequest(); oReq.addEventListener('progress', updateProgress, false); oReq.addEventListener('load', transferComplete, false); oReq.addEventListener('error', transferFailed, false); oReq.addEventListener('abort', transferCanceled, false); oReq.onload = ajaxSuccess; // http://stackoverflow.com/questions/921198/get-request-url-from-xhr-object var xhrProto = XMLHttpRequest.prototype, origOpen = xhrProto.open; xhrProto.open = function (method, url, async) { this._url = url; this._id = id; return origOpen.apply(this,arguments); }; var async=true; oReq.open('POST', action, async,id); // important - this makes the request a non-simple request with CORS // oReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // user defined header forces CORS? oReq.setRequestHeader('Header-Custom-WikitaskCORS', 'OK'); oReq.setRequestHeader('Accept','application/json'); oReq.send(formData); } catch(err) { handleError(err,id); } return false; // Prevent direct form page button submit action } // set the progress for the given check box id // and return the progress bar function setProgress(checkBoxId,progress,percent) { var checkBox=getGeneratorElement(checkBoxId,""); var progressbar=getGeneratorElement(checkBoxId,"_progress"); var progresstext=getGeneratorElement(checkBoxId,"_progress_pc"); // console.log(progressbar); // FIXME - do a true progress // progressbar.val(progress); if (progress==0) { progressbar[0].style.display = 'none'; } else { progressbar[0].style.display = 'block'; } progresstext[0].textContent=percent; return progressbar; } // start the generator for the given form, contextSetting, contextname, template and targetpage function startGenerator(form,contextSettingTxt,contextname,topic,template,targetpage,id) { var formData = new FormData(form); formData.append('server', "@(wikiTask.getServer())"); formData.append('scriptpath', "/@(wikiTask.getScriptpath())"); formData.append('engine', 'Rythm'); formData.append('input', 'sidif'); formData.append('page','Topic'); var action=form.action; // action= // action="http://phobos.bitplan.com:9089/wikiserver/task/runtemplate"; formData.append('template',template); formData.append('targetpage',targetpage); formData.append('id',id); // set the params from the contextSettings // e.g. wikiId:capri,sidifInput:Topic#sidif,contextName:MetaModel,maintopicName:Topic var contextSetting=JSON.parse(contextSettingTxt); contextSetting.maintopicName=topic; var contextSettingJson=JSON.stringify(contextSetting) formData.append('params',contextSettingJson); sendForm(formData,action,id); } // start the generators for the given form function startGenerators(form) { clearDiv(getErrorDiv()); clearDiv(getResponseDiv()); var generatorchecks= $(".checkBoxClass:checked"); generatorchecks.each(function(){ setProgress(this.id,1,""); // targetPage is the name of the checkbox var template=this.value; var ytname=$(this).attr("yt") var target=$(this).attr("target"); var contextname=$(this).attr("context"); var contextSetting=$(this).attr("contextsetting"); var id=this.id; // split e.g. Template_Context; var split = id.split('__'); // FIXME use yt and topic and generator objects instead var topic=split[1]; startGenerator(form,contextSetting,contextname,topic,template,target,id); }); return false; } // get SiDIF function getSiDIF(lbutton) { // {{wikitask // |cmd=runtemplate // |engine=Rythm // |input=sidif // |dialog=TopicGenerator#dialog // |template=TopicGenerator#template // |params=tripleStoreMode:SMW,contextName:{{{context|}}} // |targetpage=TopicGenerator2015/{{{context|}}}}} var contextSetting=JSON.parse(lbutton.value); var params='@(getWikiTaskParams("Rythm"))'; var wikiTaskLink="runtemplate"+params; wikiTaskLink+="&input="+encodeURIComponent(contextSetting.sidifInput); wikiTaskLink+="&dialog="+encodeURIComponent("TopicGenerator#dialog"); wikiTaskLink+="&template="+encodeURIComponent("TopicGenerator#template"); wikiTaskLink+="&targetpage="+encodeURIComponent("TopicGenerator2015/"+contextSetting.contextName); wikiTaskLink+="&params=tripleStoreMode:"+contextSetting.tripleStoreMode; wikiTaskLink+=",contextName:"+encodeURIComponent(contextSetting.contextName); wikiTaskLink+=",sidifInput:"+encodeURIComponent(contextSetting.sidifInput); // console.log(wikiTaskLink); window.location.replace(wikiTaskLink); } // show the given event with the given message function showEvent(evt, msg) { var doshow=true; if (evt.target instanceof XMLHttpRequest) { var xhr=evt.target; msg+=" target="+xhr._url; msg+=" responseType="+xhr.responseType; msg+=" status="+xhr.status; if (xhr.status==200) { doshow=false; } } if (doshow) { errorMessage(evt.type+" "+getClass(evt.target)+": "+msg); } return evt.target; } // event when the transfer was successfully completed function ajaxSuccess () { var json=this.responseText; // console.log(json); try { var jsonResult=JSON.parse(json); // console.log(jsonResult); var errorMsg=jsonResult.errorMsg; if (errorMsg!=null) { setProgress(jsonResult.id,100,""); addMessage(getResponseDiv(),errorMsg); } else { setProgress(jsonResult.id,0,""); var checkBox=getGeneratorElement(jsonResult.id,""); var progresstext=getGeneratorElement(jsonResult.id,"_progress_pc"); var target=$("#"+jsonResult.id).attr("target"); var targetRef=newTextElement('a',target); targetRef.href=jsonResult.targetUrl; targetRef.style='font-size:12px'; var doneSpan=newTextElement('span','✓'); doneSpan.style='color:green;font-size:14px'; progresstext[0].appendChild(targetRef); progresstext[0].appendChild(doneSpan); var deltaRef=newTextElement('a','Δ'); deltaRef.style='font-size:12px'; var revid=$("#"+jsonResult.id+"_rev").attr("revid"); deltaRef.href=jsonResult.targetUrl+"?diff=cur&oldid="+revid; progresstext[0].appendChild(deltaRef); } } catch (ex) { alert(ex.message+"\njson="+json); } } // event when transfer is complete function transferComplete(evt) { showEvent(evt,"transfer complete"); } // event when the transfer failed function transferFailed(evt) { var xhr=showEvent(evt,"transfer failed"); if (xhr instanceof XMLHttpRequest) { flagError(xhr._id,"transfer failed"); } } // event when the transer was cancelled function transferCanceled(evt) { showEvent(evt,"transfer canceled"); } </script> } @// run the selected generators @def runGenerators() { @{ String icon="media_play_green"; String cmd="run"; } <button type='submit' name='@cmd' value='@cmd' title='@cmd' onclick="return startGenerators(this.form);"> @(stockicon(icon,32,cmd,cmd)) </button> } @// display the given Reference as a row @def referenceRow(Reference ref) { <tr> <td>@(wikiTaskCmd("refreshRef",ref.getReferenceId()))</td> <td><a href='@(ref.getUrl())'>@(ref.getReferenceId())</a></td> <td>@(ref.getReferenceType().toString())</td> <td>@(ref.getAge())</td> <td>@(ref.isAvailable())</td> <td>@if(ref.getContent()) { @(ref.getContent().length()) } else { - }</td> </tr> } @// display the given Source as a row @def sourceRow(Source source) { <tr><td></td><td>@(source.getId())</td><td>@(source.getPageTitle())</td><td>@(source.getAge())</td><td>@(source.isCache())</td><td>@(source.getSource().length())</td></tr> } @// display the table of PageCache entries @def pageCacheTable(PageCache pageCache,String indent) { @(indent)<table class="table tablesorter sortable"> @(indent)<thead> @(indent) <tr><th>page</th><th>rev</th><th>timestamp</th></tr> @(indent)</thead> @(indent)<tbody> @{ List<String> pageTitles = new ArrayList<String>(pageCache.getCachedPages().keySet()); } @for (String pageTitle:pageTitles) { @{ Page page=pageCache.getCachedPages().get(pageTitle); Rev rev = PageCache.getPageRevision(page); int revid=-1; String timeStamp="?"; if (rev!=null) { revid=rev.getRevid(); timeStamp=rev.getTimestamp(); } } @(indent) <tr><td>@showLink(pageTitle, 0, "Cache0_"+revid, "")</td><td>@showLink(pageTitle, revid, "Cache_"+revid, "")</td><td>@(timeStamp)</td></tr> } @(indent)</tbody> @(indent)</table> } @// display the table of references and sources @def referenceTable(ReferenceManager rm) { <table class="table tablesorter sortable"> <thead> <tr><th></th><th>id</th><th>type</th><th>age</th><th>cache</th><th>size</th></tr> </thead> <tbody> @for (Reference reference:rm.referenceByReferenceId.values()) { @referenceRow(reference) @if (rm.getSourceById().get(reference.getReferenceId())!=null) { <tr><th colspan='3'>Sources by Id</th> @for (Source source:wikiTask.referenceManager.getSourceById().get(reference.getReferenceId()).values()) { @sourceRow(source) } } @if (rm.getSourceBySection().get(reference.getAnchor())!=null) { <tr><th colspan='3'>Sources by Section</th> @for (Source source:wikiTask.referenceManager.getSourceBySection().get(reference.getAnchor()).values()) { @sourceRow(source) } } } </tbody> </table> } @// show a link for the given pageTitle and revision id @def showLink(String pageTitle,int revid, String id, String indent) { @{ // default is unknown revision red link / create page approach String revname="click to create"; String style="style='color:red'"; if (revid>=0) { style="style='font-size: 12px'"; // normal link but small font revname="Rev "+revid; } String link=getLink(pageTitle,revid); } @(indent)<a href='@(link)' id='@(id)' revid='@(revid)' title='@(revname)' @(style)>@(pageTitle)</a> } @// show the page status link @def pageStatusLink(Topic topic,YT yt,Map<String, Page> statusMap) { @{ String pageTitle=yt.getPageTitle(topic); Page page=statusMap.get(pageTitle); int revid = -1; if (page != null) { Rev rev = PageCache.getPageRevision(page); if (rev!=null) { revid = rev.getRevid(); } } } @showLink(pageTitle, revid, yt.name+"__"+topic.name+"_rev", " ") } @// show a single row of generators for a given domain topic @def topicRow(ContextSetting contextSetting,Context context,Topic topic,Map<String, Page> statusMap,YT[] yts, int rownum) { <tr> <th>@(topic.name)<div style="margin: 0 auto; width: 48px"><img src='@(wikiTask.getServer())@(wikiTask.getScriptpath())@(topic.iconUrl)' alt='@(topic.name)'></div></th><th><label><input class='checkboxSelect' type='checkbox' id="select_row_@(rownum)" title='select row'/>→</label></th> @{ int colnum=0;} @for(YT yt:yts) { <td> <label for='@(yt.name)_@(topic.name)'> <input type="checkbox" class="checkBoxClass row_@(rownum) col_@(colnum)" contextsetting='@contextSetting.toJson()' context='@(context.name)' target='@yt.getPageTitle(topic)' yt='@(yt.name)' topic='@(topic.name)' id='@(yt.name)__@(topic.name)' name='@(yt.name):@(topic.name)' title='generate @(yt.getPageTitle(topic))' value="SiDIFTemplates#@(yt.template)"> </label> </td> <td> @pageStatusLink(topic,yt,statusMap) <progress id='@(yt.name)__@(topic.name)_progress' max='10' title='@(yt.name):@(topic.name)' style='display:none'></progress> <span id='@(yt.name)__@(topic.name)_progress_pc' class='progresstext'></span> </td> @{ colnum++;} } </tr> } @// display the generators @// sortable disabled - doesn't seem to work with selectAll logic @def showGeneratorTasks(WikiTask wikiTask,ContextSetting contextSetting) { @{ Context context=ContextFactory.getInstance().getContext(contextSetting); List<String> pageTitles = new ArrayList<String>(); if (context!=null) { for (YT yt : YT.yts) { for (Topic topic : context.getTopics()) { pageTitles.add(yt.getPageTitle(topic)); } } } Map<String, Page> statusMap = wikiTask.referenceManager.getPageCache() .updatePageStatus(pageTitles, true); } <h3>@(contextSetting.getTripleStoreMode())</h3> @if (context) { <form action='#'> <table class="table tablesorter tablesorter-blue"> <thead> <tr> <th width='12%'>@(runGenerators())</th> <th>Targets </th> @for(YT yt:YT.yts) { <th colspan='2' style="text-align:center">@(yt.label)</th> } </tr> @{ int colnum=0;} <tr> <th class='{sorter: false}'>Topics<br> <div id='reloadbuttoncontainer' style='width:80px;display:inline-block' > <button onclick='getSiDIF(this);return false;' value='@ContextSetting.fromWikiTaskAsSiDIF(wikiTask).toJson()' title='reload from SiDIF' style='display:inline-block'> <img src='/stockicons/16x16/shadow/arrow_down_blue.png'/> </button> <button onclick='getSiDIF(this);return false;' value='@contextSetting.asSMWContextSetting().toJson()' title='reload from SMW Triples' style='display:inline-block' > <img src='/stockicons/16x16/shadow/arrow_down_green.png'/> </button> </div> </th> <th class='{sorter: false}'><label><input type="checkbox" id="selectall" name="selectall" title='select all'/>↘</label></th> @for(YT yt:YT.yts) { <th class='{sorter: false}' width='14px'><label><input class='checkboxSelect' type='checkbox' id='select_col_@(colnum)' title='select all @(yt.label)'/>↓</label></th><th width='10%'><div style="margin: 0 auto; width: 48px"><img src='@(wikiTask.getServer())@(wikiTask.getScriptpath())@(yt.iconUrl)' alt='@(yt.label)'></div></th> @{ colnum++;} } </tr> </thead> <tbody id='generatortasktable'> @{ int rownum=0;} @for (Topic topic:context.getTopics()) { @topicRow(contextSetting,context,topic,statusMap,YT.yts,rownum++) } </tbody> </table> </form> } } @// show the HTML Page for the given context @def showHtml(ContextSetting contextSetting) { <!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> <title>@(title)</title> @jquery(" ") @style(" ") @selectall() @generatorStyle(" ") @generatorScript() </head> <body> <div id='container' class='container'> <div id="dialog" title="@(title)" > @(wikiTaskCmd("reset"))@(wikiTaskCmd("help"))@(wikiTaskCmd("debug")) <a href='@(wikiTask.getTargetLink().getUrl())'>@(wikiTask.getTargetpage())</a> called from <a href='@(wikiTask.getServer())@(wikiTask.getScriptpath())/index.php/@(wikiTask.getPageTitle())'>@(wikiTask.getPageTitle())</a> (@(wikiTask.getDuration()) msecs) <div id="tabs"> <ul> <li><a href="#generators">Generators</a></li> <li><a href="#pagecache">Page-Cache</a></li> <li><a href="#references">References</a></li> </ul> <div id="generators"> @(showGeneratorTasks(wikiTask,contextSetting)) </div> <div id="pagecache"> @pageCacheTable(wikiTask.referenceManager.getPageCache()," ") </div> <div id="references"> @referenceTable(wikiTask.referenceManager) </div> </div> <div id='errorMessage' style='color:red;font-size: 14px;border:1px solid red;display:none'></div> <div id='response' style='font-size: 14px;border:1px solid blue'></div> </div> </div> @dialog(" ") </body> </html> } @showHtml(contextSetting) </source> === template === <source lang='java' id='template'> @include(wiki.SiDIFTemplates.defs) @// handle error @def handleError(Throwable error) { error @(error.getClass().getName()): @(error.getMessage()) === stacktrace === <pre> @getStackTrace(error) </pre> } @{ Context context=ContextFactory.getInstance().getContext(contextSetting); Context smwContext=ContextFactory.getInstance().getContext(contextSetting.asSMWContextSetting()); String contextName=contextSetting.getContextName(); } @if (context==null) { Context (sidif): @(contextName) not found in SiDIF } else {== SiDIF == === @(contextName) SiDIF === <pre> @(context.asSiDIF()) </pre> === @(contextName) JSON === <pre> @(context.toJson()) </pre> } @if (smwContext==null) { Context (smw): @(contextName) not found in SMW triples of Wiki } else { == SMW == === @(contextName) SiDIF === <pre> @(context.asSiDIF()) </pre> === @(contextName) JSON === <pre> @(context.toJson()) </pre> } </source> 26e214c99aa84e77b159571c2b966062c79fbb05 Presentation 0 41 79 2015-11-05T19:45:01Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:00Z wikitext text/x-wiki {{Context |name=Presentation |storemode=property }} {{Context |name=Presentation |viewmode=masterdetail }} === wikitask === {{ContextWikitask |context=Presentation }} === sidif === <source lang='java' id='sidif' cache='false'> # # Context:Presentation # Presentation isA Context "Presentation" is name of it # #Presentation # Presentation isA Topic "Presentation" is name of it "Presentations" is pluralName of it "Slide Presentation" is documentation of it "MediaWiki has different means of presenting slides. See e.g.Discussion on Presentation Concept Presentation Howto see also Category:Slide " is wikiDocumentation of it "File:Presentation chart.png" is icon of it "property" is defaultstoremode of it "Presentation" is context of it Presentation_title addsTo it Presentation_author addsTo it Presentation_start addsTo it Presentation_title isA Property "title" is name of it "The title of a presentation" is documentation of it "title" is label of it true is mandatory of it true is primaryKey of it "Property:Presentation_title" is pageid of it "Presentation" is topic of it Presentation_author isA Property "author" is name of it "author" is label of it "author" is pageid of it "Presentation" is topic of it Presentation_start isA Property "start" is name of it "start" is label of it "start" is pageid of it "Presentation" is topic of it # #Slide # Slide isA Topic "Slide" is name of it "Slides" is pluralName of it "I am a presentation slide" is documentation of it "I am a presentation slide" is wikiDocumentation of it "File:Chart.png" is icon of it "property" is defaultstoremode of it "Presentation" is context of it Slide_title addsTo it Slide_next addsTo it Slide_prev addsTo it Slide_notes addsTo it Slide_state addsTo it Slide_comment addsTo it Slide_presentation addsTo it Slide_title isA Property "title" is name of it "title" is label of it "title" is pageid of it "Slide" is topic of it Slide_next isA Property "next" is name of it "next" is label of it "next" is pageid of it "Slide" is topic of it Slide_prev isA Property "prev" is name of it "prev" is label of it "prev" is pageid of it "Slide" is topic of it Slide_notes isA Property "notes" is name of it "notes" is label of it "notes" is pageid of it "Slide" is topic of it Slide_state isA Property "state" is name of it "state" is label of it "state" is pageid of it "Slide" is topic of it Slide_comment isA Property "comment" is name of it "comment" is label of it "comment" is pageid of it "Slide" is topic of it Slide_presentation isA Property "presentation" is name of it "dropdown" is inputType of it "presentation" is label of it "presentation" is pageid of it "Slide" is topic of it Presentation_has_Slides isA TopicLink "presentation_has_slides" is name of it "Presentation" is source of it "presentation of this slide" is sourceDocumentation of it "presentation" is sourceRole of it false is sourceMultiple of it "Slide" is target of it "slides" is targetRole of it "slides for a presentation" is targetDocumentation of it true is targetMultiple of it true is masterDetail of it # #PageSequence # PageSequence isA Topic "PageSequence" is name of it "PageSequences" is pluralName of it "A Sequence of pages that might belong to the same category and might have an icon" is documentation of it "A Sequence of pages that might belong to the same category and might have an icon" is wikiDocumentation of it "File:Pagesequenceicon.png" is icon of it "/images/f/fd/Pagesequenceicon.png" is iconUrl of it "property" is defaultstoremode of it false is cargo of it "Presentation" is context of it PageSequence_prev addsTo it PageSequence_next addsTo it PageSequence_category addsTo it PageSequence_categoryIcon addsTo it # properties of PageSequence # property prev PageSequence_prev isA Property "prev" is name of it "previous" is label of it "Page" is type of it 4 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "dropdown" is inputType of it "Concept:Presentation" is values_from of it true is showInGrid of it false is isLink of it "PageSequence" is topic of it # property next PageSequence_next isA Property "next" is name of it "next" is label of it "Page" is type of it 5 is index of it false is primaryKey of it true is mandatory of it false is uploadable of it "dropdown" is inputType of it "Concept:Presentation" is values_from of it true is showInGrid of it false is isLink of it "PageSequence" is topic of it # property category PageSequence_category isA Property "category" is name of it "category" is label of it "Page" is type of it 6 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "dropdown" is inputType of it "Special:Categories" is values_from of it true is showInGrid of it false is isLink of it "PageSequence" is topic of it # property categoryIcon PageSequence_categoryIcon isA Property "categoryIcon" is name of it "categoryIcon" is label of it "URL" is type of it 7 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "text" is inputType of it true is showInGrid of it false is isLink of it "PageSequence" is topic of it # #Icon # Icon isA Topic "Presentation" is context of it name addsTo it style addsTo it size addsTo it </source> === wikiTasks === {{TopicWikitasks |context=Presentation |topic=Presentation |input=sidif }} {{TopicWikitasks |context=Presentation |topic=Slide |input=sidif }} [[Category:Presentation]] df959fe18ad5ae22bddad7e0bbcb4187960b531e GraphViz 0 42 82 2015-11-05T19:45:03Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:01Z wikitext text/x-wiki == Graphviz == === Documentation === * http://www.graphviz.org * http://www.graphviz.org/Documentation/dotguide.pdf * http://www.tonyballantyne.com/graphs.html * http://www.graphviz.org/doc/fontfaq.txt * http://stackoverflow.com/questions/tagged/graphviz * http://graphs.grevian.org/reference ==== Mediawiki Graphviz extension ==== * https://www.mediawiki.org/wiki/Extension:GraphViz === Fiddle === * http://www.webgraphviz.com/ === Examples === ==== Graph ==== <source lang='php'> <graphviz format='svg'> graph graphname { Stakeholder -- Requirements; Requirements -- Samplecases; Requirements -- Model; Model -- Code; } </graphviz> </source> <graphviz format='svg'> graph graphname { Stakeholder -- Requirements; Requirements -- Samplecases; Requirements -- Model; Model -- Code; } </graphviz> ==== Hierarchy ==== <source lang='php'> <graphviz> digraph hierarchy { nodesep=1.0 // increases the separation between nodes node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour edge [color=Blue, style=dashed] //All the lines look like this Model->{Package1 Package2 System} Package1->{Class1 Class2} System->Subsystem {rank=same;Subsystem Class1 Class2} // Put them on the same level } </graphviz> </source> <graphviz> digraph hierarchy { nodesep=1.0 // increases the separation between nodes node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour edge [color=Blue, style=dashed] //All the lines look like this Model->{Package1 Package2 System} Package1->{Class1 Class2} System->Subsystem {rank=same;Subsystem Class1 Class2} // Put them on the same level } </graphviz> ==== HTML labels ==== <source lang='php'> digraph G { "Record" [ label=<<table> <tr> <td>A</td> <td bgcolor='#00CC11'>B</td> </tr> </table> > ]; } </source> <graphviz> digraph G { "Record" [ label=<<table> <tr> <td>A</td> <td bgcolor='#00CC11'>B</td> </tr> </table> > ]; } </graphviz> ==== UML ==== <source lang='php'> digraph obj{ nodesep=1.0 // increases the separation between nodes node[shape=record, color="#FF8000", fontname = "Technical"]; rankdir="BT"; teacher [label = "{<f0> Teacher|<f1> name\n |<f2> \n }"]; course [label = "{<f0> Course|<f1>title \n |<f2> \n }"]; student [label = "{<f0> Student|<f1>name \n |<f2> \n }"]; lesson [label = "{<f0> Lesson |<f1> \n |<f2> \n }"]; tutorial [label = "{<f0> Tutorial|<f1> \n |<f2> \n }"]; assessment[label = "{<f0> Assessment|<f1> \n |<f2> \n }"]; coursework [label = "{<f0> Coursework|<f1> \n |<f2> \n }"]; exam [label = "{<f0> Exam|<f1> \n |<f2> \n }"]; teacher->course [dir="forward",arrowhead="none",arrowtail="normal",headlabel=" 1",taillabel=" 1.."]; student->course [dir="forward",arrowhead="none",arrowtail="normal",headlabel=" 1",taillabel=" 1.."]; lesson->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; tutorial->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; assessment->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; coursework->assessment; exam->assessment; {rank=same; teacher course student}; } </source> <graphviz> digraph obj{ nodesep=1.0 // increases the separation between nodes node[shape=record, color="#FF8000", fontname = "Technical"]; rankdir="BT"; teacher [label = "{<f0> Teacher|<f1> name\n |<f2> \n }"]; course [label = "{<f0> Course|<f1>title \n |<f2> \n }"]; student [label = "{<f0> Student|<f1>name \n |<f2> \n }"]; lesson [label = "{<f0> Lesson |<f1> \n |<f2> \n }"]; tutorial [label = "{<f0> Tutorial|<f1> \n |<f2> \n }"]; assessment[label = "{<f0> Assessment|<f1> \n |<f2> \n }"]; coursework [label = "{<f0> Coursework|<f1> \n |<f2> \n }"]; exam [label = "{<f0> Exam|<f1> \n |<f2> \n }"]; teacher->course [dir="forward",arrowhead="none",arrowtail="normal",headlabel=" 1",taillabel=" 1.."]; student->course [dir="forward",arrowhead="none",arrowtail="normal",headlabel=" 1",taillabel=" 1.."]; lesson->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; tutorial->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; assessment->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; coursework->assessment; exam->assessment; {rank=same; teacher course student}; } </graphviz> 92e3b523fa3bae0f3da63d0bc592323ad2eec188 File:GraphViz digraph G dot.png 6 43 83 2015-11-05T19:45:03Z Wf 1 generated by the GraphViz [[Special:Version#Installed_extensions|extension]] from the [[GraphViz]] page wikitext text/x-wiki [[Category:GraphViz]][[Category:GraphViz dot]] d1f9cf68e993d59c3c9ce3627f507a743ad6138b File:GraphViz digraph hierarchy dot.png 6 44 84 2015-11-05T19:45:03Z Wf 1 generated by the GraphViz [[Special:Version#Installed_extensions|extension]] from the [[GraphViz]] page wikitext text/x-wiki [[Category:GraphViz]][[Category:GraphViz dot]] d1f9cf68e993d59c3c9ce3627f507a743ad6138b File:GraphViz digraph obj dot.png 6 45 85 2015-11-05T19:45:03Z Wf 1 generated by the GraphViz [[Special:Version#Installed_extensions|extension]] from the [[GraphViz]] page wikitext text/x-wiki [[Category:GraphViz]][[Category:GraphViz dot]] d1f9cf68e993d59c3c9ce3627f507a743ad6138b File:GraphViz graph graphname dot.svg 6 46 86 2015-11-05T19:45:04Z Wf 1 generated by the GraphViz [[Special:Version#Installed_extensions|extension]] from the [[GraphViz]] page wikitext text/x-wiki [[Category:GraphViz]][[Category:GraphViz dot]] d1f9cf68e993d59c3c9ce3627f507a743ad6138b File:File graph GraphVizExtensionDummy dot.png 6 47 87 2015-11-05T19:45:06Z Wf 1 generated by the GraphViz [[Special:Version#Installed_extensions|extension]] from the [[File]] page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Rythm 0 49 89 2015-11-05T19:45:06Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:04Z wikitext text/x-wiki === What is Rythm? === The {{Link|target=http://rythmengine.org|title=Rhythm template engine}} is inspired by the syntax of {{Link|target=http://weblogs.asp.net/scottgu/introducing-razor|title=Microsoft's Razor ViewEngine for Asp.Net}} It supports java code right in the templates === Links === * {{Link|target=http://stackoverflow.com/tags/rythm|title=Rythm questions on stackoverflow}} * {{Link|target=http://fiddle.rythmengine.com/#/all_demos|title=Rythm fiddle with demos}} * {{Link|target=https://github.com/greenlaw110/Rythm/issues|title=Issues}} === Examples === *http://partner.bitplan.com/index.php/Example_WF_ZQuestion/questionsnew *http://partner.bitplan.com/index.php/Example_ZQuestion === Author === {{Link|target=Green Luo}} 46456f946cedb0eab1ad412921e5b2f56b7f2efa Property:Property allowedValues 102 50 90 2015-11-05T19:45:07Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:06Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=13 |size=50 |topic=Concept:Property |label=allowedValues |name=allowedValues |primaryKey=false |documentation=There are two ways to specified allowed Values: # https://semantic-mediawiki.org/wiki/Help:Special_property_Allows_value. <br>Use [[Property:Allows_value]] to see which values are allowed for certain properties # http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>values=possible values - Specifies a set of either possible values or autocompletion values (depending on the input type) that this field can have, overriding whatever set of values may have been set from the Semantic MediaWiki property. This set of values is separated by commas by default, but the delimiter can be modified using the delimiter= parameter. If you specify any values method number 2 will be used here which might override any allowed Values specified with method number 1. |type=Special:Types/Text |storemode=property |property=Property:Property allowedValues }} [[Has type::Text]] [[has default form::Property]] e67903d9e926464e0d697a421aeadc7bf8d145e9 Property:Property defaultValue 102 51 91 2015-11-05T19:45:08Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:07Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=11 |size=80 |topic=Concept:Property |label=default |name=defaultValue |primaryKey=false |documentation=default value - Specifies a default value for this field. For date-related fields, default=now will set the value to the current date and possibly time. For text fields, default=current user will set the value to the username of the user adding this page. For the checkbox input type, default=yes will check the checkbox by default. (The 'checkboxes' input type, on the other hand, like the 'listbox' type, requires specifying the actual values, like default=Value A, Value C.) You can also include templates, parser functions, and magic words within the 'default=' value. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag (default) |type=Special:Types/Code |storemode=property }} [[Has type::Code]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} 44ffb6a4b45e8fc917a0030e0273ad6eb1877f75 Property:Property documentation 102 52 92 2015-11-05T19:45:09Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:08Z wikitext text/x-wiki {{Property |inputType=textarea |mandatory=false |uploadable=false |index=14 |size=500 |topic=Concept:Property |label=documentation |name=documentation |primaryKey=false |documentation=The documentation for a property |type=Special:Types/Text |storemode=property }} [[Has type::Text]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} 2b833721621b40c223fb989a522687e4d28e33d8 Property:Property inputType 102 53 93 2015-11-05T19:45:11Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:10Z wikitext text/x-wiki {{Property |inputType=dropdown |mandatory=false |allowedValues=text, combobox, dropdown, textarea, tree, datetime, datepicker, timepicker, datetimepicker, menuselect,two listboxes, datecheck, regexp, radiobutton, googlemaps |uploadable=false |index=12 |size=50 |topic=Concept:Property |label=inputType |name=inputType |primaryKey=false |documentation=see * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>input type - Specifies the type of input this field will have in the form. If a field corresponds to an SMW property or Cargo field, the form will usually have the correct input type by default; otherwise the default is text. If the corresponding SMW property, or Cargo field, cannot be automatically determined, you can use the parameter 'property', or the parameters 'cargo table' and 'cargo field', to manually specify it (see below). The allowed set of input types is different for every semantic property type; see below for the full list of options. * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Allowed_input_types_for_data_types * http://www.mediawiki.org/wiki/Extension:Semantic_Forms_Inputs |type=Special:Types/Text |storemode=property }} [[Has type::Text]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} bcc1c7fc72df080de5dd990110d3e6d17e784265 Property:Property label 102 54 94 2015-11-05T19:45:12Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:11Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=2 |size=50 |topic=Concept:Property |label=label |name=label |primaryKey=false |documentation=The label to be shown when in a form |type=Special:Types/Text |storemode=property }} [[Has type::Text]] 23fbf79e328b7d8094af34184d6d930a07d1cdc1 Property:Property mandatory 102 55 95 2015-11-05T19:45:13Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:12Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=7 |size=4 |topic=Concept:Property |label=mandatory |name=mandatory |primaryKey=false |documentation=Specifies that this field must be filled in by the user. Note: mandatory should not be used in conjunction with hidden. Use of both in any field will cause the mandatory check on any field to fail when the form is saved. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag |type=Special:Types/Boolean |storemode=property }} [[Has type::Boolean]] [[Has default form::Property]] 718e5363c09756867d6bae12de1506dde101434a Property:Property name 102 56 96 2015-11-05T19:45:14Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:13Z wikitext text/x-wiki {{Property |name=name |label=name |type=Special:Types/Text |index=1 |sortPos=2 |primaryKey=Yes |mandatory=Yes |size=50 |uploadable=No |documentation=The name of the property |showInGrid=Yes |isLink=No |topic=Concept:Property |storemode=property }} [[Has type::Text]] [[Category:Property]] 1c13b1dce7c83ef117a1f9ce56fb3396ca7c75ae Property:Property type 102 57 97 2015-11-05T19:45:15Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:14Z wikitext text/x-wiki {{Property |defaultValue=Text |mandatory=false |uploadable=false |index=3 |topic=Concept:Property |label=type |name=type |primaryKey=false |documentation=The type of a Property |type=Special:Types/Page |storemode=property }} [[Has type::Page]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} 6d71e846c243c2967e33096e6572550cba2aaace Property:Property primaryKey 102 58 98 2015-11-05T19:45:16Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:15Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=6 |size=4 |topic=Concept:Property |label=primary key |name=primaryKey |primaryKey=false |documentation=is this property a primary key of it's topic? |type=Special:Types/Boolean |storemode=property }} [[Has type::Boolean]] 56e5125901b976dec053068d7f4b0a7ea4d8832e Property:Property namespace 102 59 99 2015-11-05T19:45:17Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:16Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=8 |size=20 |topic=Concept:Property |label=namespace |name=namespace |primaryKey=false |documentation=namespace prefix |type=Special:Types/Text |storemode=property }} [[Has type::Text]] b217694178e24b57b74ff04bac85e95a0c2d6c2c Property:Property size 102 60 100 2015-11-05T19:45:18Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:17Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=9 |size=3 |topic=Concept:Property |label=size |name=size |primaryKey=false |documentation=the display size of the field for the property |type=Special:Types/Number |storemode=property }} [[Has type::Number]] 6d1aeb669e42cf06f255bf3087c95b8323730c6f Property:Property index 102 61 101 2015-11-05T19:45:19Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:18Z wikitext text/x-wiki {{Property |name=index |label=index |type=Special:Types/Number |index=4 |sortPos=1 |primaryKey=No |mandatory=No |uploadable=No |documentation=A positive number that specifies at which position of a Topic the given property should show. The first property to show has the index 1 each following property has an index that is +1 of the previous. |showInGrid=Yes |isLink=No |topic=Concept:Property |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} eb1e0afba178e68d4c09204921bad6740d15e493 Property:Property sortPos 102 62 102 2015-11-05T19:45:20Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:20Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=5 |size=3 |topic=Concept:Property |label=sortPos |name=sortPos |primaryKey=false |documentation=If none empty >0 this is the position in the sort clause of this property. This is used when displaying list of the topic as the default sort order and it is used for selecting topics . E.g. Sortpos 1 for attribute lastname and sortpos 2 for attribute firstname leads to sort by lastname,firstname |type=Special:Types/Number |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} fe462fcd4a1efcb4162a2501c0226bebeb0a208c Property:Topic cargo 102 63 103 2015-11-05T19:45:22Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:21Z wikitext text/x-wiki {{Property |name=cargo |label=use cargo |type=Special:Types/Boolean |index=9 |primaryKey=No |mandatory=No |uploadable=No |documentation=Should the Topic be stored using the [https://www.mediawiki.org/wiki/Extension:Cargo Cargo Extension?] |showInGrid=No |isLink=No |topic=Concept:Topic |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 9bcc14ed2d7ff43056bd2f72b019cfabcf34abb6 Property:Property showInGrid 102 64 104 2015-11-05T19:45:23Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:22Z wikitext text/x-wiki {{Property |name=showInGrid |label=showInGrid |type=Special:Types/Boolean |index=16 |primaryKey=false |mandatory=false |uploadable=false |defaultValue=true |documentation=I am true if this property is displayed in the default list of properties for my topic as a column |showInGrid=true |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} ee6f2a46155aac74f158fb099aa846d4ef8ba2a0 Property:Property isLink 102 65 105 2015-11-05T19:45:24Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:23Z wikitext text/x-wiki {{Property |name=isLink |label=isLink |type=Special:Types/Boolean |index=17 |primaryKey=false |mandatory=false |uploadable=false |documentation=true if this Property is derived form a Link. It will not be exported to SiDIF separately and automatically be added by the Property Generator |showInGrid=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] 22858d0e45d7302303a1fcebdd4d410f5434caa9 Property:Property topic 102 66 106 2015-11-05T19:45:25Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:24Z wikitext text/x-wiki {{Property |name=topic |label=topic |type=Special:Types/Page |index=19 |primaryKey=false |mandatory=false |size=50 |uploadable=false |showInGrid=false |isLink=true |topic=Concept:Property |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} 98ab59e6b838ff45794d5408c4881a10815d025d Property:Property values from 102 67 107 2015-11-05T19:45:26Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:25Z wikitext text/x-wiki {{Property |inputType=textarea |mandatory=false |uploadable=false |index=15 |size=200 |topic=Concept:Property |label=values from |name=values_from |primaryKey=false |documentation=Specifies where to get the possible values to be displayed in a form from see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * values from property=property name - Similar to values=, but gets its values from the the set of all values that a certain SMW property points to. * values from category=category name - Similar to values=, but gets its values from the names of all pages belonging to a specific category. * values from concept=concept name - Similar to values=, but gets its values from the names of all pages belonging to a specific concept. * values from namespace=namespace name - Similar to values=, but gets its values from the names of all pages belonging to a specific namespace. (To get values from the main namespace, use 'Main' for the namespace name, or just leave it blank.) * values from url=URL identifier - Used only for autocompletion. Specifies that autocompletion should be based on the values retrieved from an outside URL; see Autocompleting on outside values for how to do this. * values from external data=variable name - Used for autocompletion. You need to have theExternal Data extension installed to be able to use this parameter. It specifies that autocompletion should be based on the data retrieved from an outside source. A large number of data sources are supported, including web APIs, regular wiki pages, files on the local server, databases and LDAP directories. See Autocompletion using External Data. |type=Special:Types/Code |storemode=property }} [[Has type::Code]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} 9555f290c4f05dabf9f1e62ac13b47494e8b1473 Property:Property uploadable 102 68 108 2015-11-05T19:45:27Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:26Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=10 |size=4 |topic=Concept:Property |label=uploadable |name=uploadable |primaryKey=false |documentation=Specifies that a link should be placed next to this field, that opens a popup window to let the user upload a file; see 'Uploading files', below. See * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Uploading_files The type of the target property needs to be Page for this to work |type=Special:Types/Boolean |storemode=property }} [[Has type::Boolean]] [[Has default form::Property]] 1a93d39ea095dd657b34c5c217961aefecb83f3f Property:Topic defaultstoremode 102 69 109 2015-11-05T19:45:28Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:28Z wikitext text/x-wiki {{Property |inputType=radiobutton |mandatory=false |allowedValues=none,property,subobject |uploadable=false |index=7 |size=50 |topic=Concept:Topic |label=default storemode |name=defaultstoremode |primaryKey=false |documentation=The default storemode of the topic |type=Special:Types/Text |storemode=property }} [[Has type::Text]] [[has default form::Property]] 05060f4b0bb55c078dac30b4cfc4d9f0ce53e2d5 Property:Topic documentation 102 70 110 2015-11-05T19:45:29Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:29Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=5 |size=50 |topic=Concept:Topic |label=documentation |name=documentation |primaryKey=false |documentation=The plaintext documentation of a Topic. Please do not use markup for this. |type=Special:Types/Text |storemode=property |property=Property:Topic documentation }} [[Has type::Text]] [[has default form::Property]] 6ba2bbaed18c312f55e610df1336b6c68844b17d Property:Topic name 102 71 111 2015-11-05T19:45:31Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:30Z wikitext text/x-wiki {{Property |mandatory=true |uploadable=false |index=1 |size=80 |topic=Concept:Topic |label=name |name=name |primaryKey=true |documentation=The name of the topic |type=Special:Types/Text |storemode=property }} [[Has type::Text]] [[has default form::Property]] 151ce334866dccd0f91225df5102807d5130f935 Property:Topic pluralName 102 72 112 2015-11-05T19:45:32Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:31Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=2 |size=50 |topic=Concept:Topic |label=pluralName |name=pluralName |primaryKey=false |documentation=The plural of a topic name. E.g. for the topic 'City' the pluralName is 'Cities'. If no pluralName is specified an 's' is appended. E.g. for the topic 'Book' the default pluralName is 'Books' |type=Special:Types/Text |storemode=property |property=Property:Topic pluralName }} [[Has type::Text]] [[has default form::Property]] 1922e57e37b28d54c479f33f16046e2382b9fd7b Property:Topic wikiDocumentation 102 73 113 2015-11-05T19:45:33Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:32Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=6 |size=50 |topic=Concept:Topic |label=wikiDocumentation |name=wikiDocumentation |primaryKey=false |documentation=Documentation of the Topic using MediaWiki / Semantic Mediawiki markup |type=Special:Types/Text |storemode=property |property=Property:Topic wikiDocumentation }} [[Has type::Text]] [[has default form::Property]] 134096325a9f0c2493a4d735dd43466c305bc740 Property:Topic icon 102 74 114 2015-11-05T19:45:34Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:33Z wikitext text/x-wiki {{Property |name=icon |label=icon |type=Special:Types/Page |index=3 |primaryKey=false |mandatory=false |namespace=File |size=55 |uploadable=true |documentation=an Icon for the topic |showInGrid=false |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Page]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} 0cfb51e5af30caa7900bcc843b9e8b76bade387c Property:Topic iconUrl 102 75 115 2015-11-05T19:45:35Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:34Z wikitext text/x-wiki {{Property |name=iconUrl |label=icon Url |type=Special:Types/URL |index=4 |primaryKey=false |mandatory=false |size=80 |uploadable=false |inputType=text |documentation=the url of an icon |showInGrid=false |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Code]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} 3f4e5345d4b67588ccab5a79e9ca71f544102a4a Property:Topic context 102 76 116 2015-11-05T19:45:36Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:35Z wikitext text/x-wiki {{Property |name=context |label=context |type=Special:Types/Page |index=10 |primaryKey=No |mandatory=No |uploadable=No |documentation=The context of this topic |showInGrid=No |isLink=Yes |topic=Concept:Topic |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} c710b9b5eae89abc7be6fbaa1a918f828703eee6 Property:Context name 102 77 117 2015-11-05T19:45:37Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:36Z wikitext text/x-wiki {{Property |mandatory=true |uploadable=false |index=1 |sortPos=1 |size=80 |topic=Concept:Context |label=name |name=name |primaryKey=true |documentation=Name of the context |type=Special:Types/Text |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} 45ee7b0006bf6fd122dd79cf7a233c131af5ee58 Property:TopicLink name 102 78 118 2015-11-05T19:45:38Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:37Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=1 |size=50 |topic=Concept:TopicLink |label=name |name=name |primaryKey=false |documentation=The name of the topic link |type=Special:Types/Text |storemode=property }} [[Has type::Text]] 2103dc93e08358b4f1b03eadb1c616d1d76260f4 Property:TopicLink source 102 79 119 2015-11-05T19:45:39Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:38Z wikitext text/x-wiki {{Property |inputType=dropdown |mandatory=true |uploadable=false |values_from=concept=Topic |index=2 |size=50 |topic=Concept:TopicLink |label=source |name=source |primaryKey=false |documentation=the source of a topic Link |type=Special:Types/Page |storemode=property }} [[Has type::Page]] d0a485631145ee8f336fc518f91b4bebc1508a4e Property:TopicLink sourceMultiple 102 80 120 2015-11-05T19:45:40Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:39Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=4 |size=50 |topic=Concept:TopicLink |label=sourceMultiple |name=sourceMultiple |primaryKey=false |type=Special:Types/Boolean |storemode=property }} [[Has type::Boolean]] [[has default form::Property]] 8492ccb436de19677e7a26c7ba738c242080a939 Property:TopicLink sourceRole 102 81 121 2015-11-05T19:45:41Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:40Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=3 |size=50 |topic=Concept:TopicLink |label=sourceRole |name=sourceRole |primaryKey=false |type=Special:Types/Text |storemode=property }} [[Has type::Text]] 9f2c2a586a41eb2316534ba18b08a0880646d11b Property:TopicLink sourceDocumentation 102 82 122 2015-11-05T19:45:42Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:41Z wikitext text/x-wiki {{Property |inputType=textarea |mandatory=false |uploadable=false |index=5 |size=300 |topic=Concept:TopicLink |label=source Doc |name=sourceDocumentation |primaryKey=false |documentation=Documentation for the source Role |type=Special:Types/Text |storemode=property }} [[Has type::Text]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} e6963a8a85edefd280c84cc01454c0438c32e9f1 Property:TopicLink target 102 83 123 2015-11-05T19:45:43Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:43Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=6 |size=50 |topic=Concept:TopicLink |label=target |name=target |primaryKey=false |type=Special:Types/Page |storemode=property }} [[Has type::Page]] 7d3340f7d836dc22b0a1825669f23f35a0d9cc6d Property:TopicLink targetMultiple 102 84 124 2015-11-05T19:45:45Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:44Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=8 |size=50 |topic=Concept:TopicLink |label=sourceMultiple |name=targetMultiple |primaryKey=false |type=Special:Types/Boolean |storemode=property }} [[Has type::Boolean]] [[has default form::Property]] 152b442489dfe8447d3191e2daff94b2ed3be5ec Property:TopicLink targetRole 102 85 125 2015-11-05T19:45:46Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:45Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=7 |size=50 |topic=Concept:TopicLink |label=targetRole |name=targetRole |primaryKey=false |type=Special:Types/Text |storemode=property }} [[Has type::Text]] b98155d0514a4af41e47809d38210aeef5ca9b82 Property:TopicLink targetDocumentation 102 86 126 2015-11-05T19:45:47Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:46Z wikitext text/x-wiki {{Property |inputType=textarea |mandatory=false |uploadable=false |index=9 |size=300 |topic=Concept:TopicLink |label=target Doc |name=targetDocumentation |primaryKey=false |documentation=Documentation for the target Role |type=Special:Types/Text |storemode=property }} [[Has type::Text]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} cac8902110d2716bad1d656d32f24e82bd41c95b Property:TopicLink masterDetail 102 87 127 2015-11-05T19:45:48Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:47Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=10 |topic=Concept:TopicLink |label=masterDetail |name=masterDetail |primaryKey=false |documentation=should the details be displayed in the same form and template? If no * for a 1:1 link there will be a linking attribute used and that can be selected. * for a 1:n link a link to the list of neighbours will be displayed if yes * for a 1:1 link the details * for a 1:n link |type=Special:Types/Boolean |storemode=property }} [[Has type::Boolean]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} 080f789c46ebb6a1a079c2da1b7183dc8975a135 Property:SMW Type documentation 102 88 128 2015-11-05T19:45:49Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:48Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=2 |size=50 |topic=Concept:SMW Type |label=type |name=documentation |primaryKey=false |documentation=The documentation of this Semantic Media Wiki type |type=Special:Types/Text |storemode=property |property=Property:SMW Type documentation }} [[Has type::Text]] 22226bbb54fbb2bd626fbcb0e68b0eb4a1ff9e36 Property:SMW Type helppage 102 89 129 2015-11-05T19:45:50Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:49Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=3 |size=50 |topic=Concept:SMW Type |label=type |name=helppage |primaryKey=false |documentation=The url of the 'official' documentation page of this type |type=Special:Types/URL |storemode=property }} [[Has type::URL]] [[has default form::Property]] 46b976c63eb7a7f5528b8177c9bc97a572a27299 Property:SMW Type type 102 90 130 2015-11-05T19:45:51Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:50Z wikitext text/x-wiki {{Property |mandatory=true |uploadable=false |index=1 |size=50 |topic=Concept:SMW Type |label=type |name=type |primaryKey=true |documentation=The Semantic MediaWiki type without the prefix e.g. Text, Number, Boolean |type=Special:Types/Text |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?PropertyConfiguration type#- }} [[Category:SMW Type]] 48a014cc7476126a7dea3e8a8b065f306fd104e9 Property:SMW Type typepage 102 91 131 2015-11-05T19:45:52Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:51Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=4 |size=50 |topic=Concept:SMW Type |label=typepage |name=typepage |primaryKey=false |documentation=The Semantic Media Wiki Special page for this specific type e.g. Special:Types/Text, Special:Types/Boolean, Special:Types/Date, Special:Types/Number, Special:Types/Page |type=Special:Types/Page |storemode=property }} [[Has type::Page]] [[Category:SMW Type]] 9b19c3be6c31422fc26ba37353b54dd0e193050d Property:SMW Type javaType 102 92 132 2015-11-05T19:45:53Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:52Z wikitext text/x-wiki {{Property |mandatory=false |uploadable=false |index=5 |size=50 |topic=Concept:SMW Type |label=java Type |name=javaType |primaryKey=false |documentation=java mapping of this type |type=Special:Types/Text |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?PropertyConfiguration type#- }} [[Category:SMW Type]] 306481ca53265e177f6216ab5fcf4e9dffe0b5a4 Template:Link 10 19 133 26 2015-11-05T19:45:56Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:54Z wikitext text/x-wiki <noinclude> <!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT --> {{PageSequence |prev=Vorlage:PageSequence |next=Vorlage:IconLink |category=Template |categoryIcon=documents_new }} == template purpose == This is a Template for internal and external Links in WikiSon notation. === Motivation === In Mediawiki there are at least five different ways to use a link - we'd like to hide this complexity and add new functionality: # <pre>[[Main Page]]</pre>[[Main Page]] - internal link with no text # <pre>[[Main Page|Start Page]]</pre>[[Main Page|Start Page]] - internal link with text # <pre>[http://partner.bitplan.com] </pre>[http://partner.bitplan.com] - external link as footnote # <pre>[http://partner.bitplan.com BITPlan partner site] </pre>[http://partner.bitplan.com BITPlan partner site] - external link with text # <pre>http://partner.bitplan.com </pre>http://partner.bitplan.com - automatic external link == WikiSon Link == === Motivation === The Concept behind a link is <uml> Class Link { target title } ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager hide Circle skinparam note{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam package{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam usecase{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam activity{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam classAttribute{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam class{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } </uml> This calls for the WikiSon notation <pre> {{Link |target=sometarget |text=sometext }} </pre> === Link as WikiSon === Using the WikiSon Concept approach the Link Concept is represented via the Wiki [[:Category:Link]]<br> Especially there is a [[List of Links]] page available. === Importance === this is a fundamental concept should not be broken. Therefore {{Fixme|todo=This template needs to be protected soon|done=true}} {{Fixme|todo=This template needs to be distributed in the smartMediaWiki network of wikis|done=false}} === Examples === <pre> {{Link}} </pre> internal default link to Main Page {{Link}} <pre> {{Link|target=Main Page}} </pre> internal link to Main Page {{Link|target=Main Page}} <pre> {{Link|target=Main Page|title=Main Page}} </pre> internal link to Main Page with title {{Link|target=Main Page|title=Main Page}} <pre> {{Link|target=http://partner.bitplan.com}} </pre> external link {{Link|target=http://partner.bitplan.com}} <pre> {{Link|target=http://partner.bitplan.com|title=BITPlan Partner wiki}} </pre> external link with title {{Link|target=http://partner.bitplan.com|title=BITPlan Partner wiki}} === implementation === ==== Prerquisite ==== LocalSettings.php needs to have the StringFunctions enabled: <source lang='php'> # WF 2015-01-20 # allow string functions $wgPFEnableStringFunctions=true; </source> ==== Template source ==== The complexity of this template macro needs to be hidden ===== original Link Template ===== <pre> {{#set:Link target={{{target|}}} |Link title={{{title|}}} }}{{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | {{#set:Link targetUrl={{{target|}}}}}{{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }}| {{#set:Link targetPage={{{target|}}}}}{{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }}}}[[Category:Link]] </pre> ===== pretty printed Template macro ===== this version would unfortunately create unwanted newlines in the macro result <source lang='html4strict'> <!-- set concept attributes target (mandatory) and title (optional) --> {{#set:Link target={{{target|}}} |Link title={{{title|}}} }} <!-- check whether link is external or internal by comparing the firsts 4 chars with "http" --> {{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | <!-- in the http case (external link) set the targetURL property - it has the type "URL" and not "Text" like target or "Page" like targetPage --> {{#set:Link targetUrl={{{target|}}}}} <!-- display external link with our without title --> {{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }} | <!-- in the non-http case (internal link) set the targetPage property - it has the type "Page" and not "Text" like target or "Url" like targetUrl --> {{#set:Link targetPage={{{target|}}}}} <!-- display internal link with our without title --> {{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }} }} <!-- set the Category so that any page using this is displayed in this category --> [[Category:Link]] </source> ==== How the Link Macro works ==== The Link Macro checks whether the link is external or internal and displays the correct version. It sets the Link Concept's attributes by setting the correspond Semantic Media Wiki properties. it uses the following helper funcitons: * Substring: https://www.mediawiki.org/wiki/Extension:StringFunctions/en#.23sub: * #ifeq: https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/en#.23ifeq * #if: https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/en#.23if * #set: https://semantic-mediawiki.org/wiki/Help:Setting_values ===== Substring ===== <pre> {{#sub:string|start|length}} The start parameter, if positive (or zero), specifies a zero-based index of the first character to be returned. Example: {{#sub:Icecream|3}} returns cream. {{#sub:Icecream|0|3}} returns Ice. </pre> ===== if exists and non empty ===== <pre> {{#if: test string | value if test string is not empty | value if test string is empty (or only white space) }} </pre> ===== if equals ===== <pre> {{#ifeq: string 1 | string 2 | value if identical | value if different }} </pre> ===== setting Semantic values ===== <pre> {{#set:Has population=2,234,105 |Located in country=France |Has mayor=Bertrand Delanoë }} </pre> === SMW PageSchema use === ==== generated version of this template ==== <pre> < noinclude> Dies ist die Vorlage „Link“. Sie sollte im folgenden Format genutzt werden: < pre> {{Link |target= |title= }} </ pre> Klick auf „Bearbeiten“, um den Quelltext der Vorlage anzusehen. </ noinclude>< includeonly>{| class="wikitable" ! target | [[Link_target::{{{target|}}}]] |- ! title | [[Link_title::{{{title|}}}]] ... |} [[Kategorie:Link]] </ includeonly> </pre> [[Category:Template]]</noinclude><includeonly>{{#set:Link target={{{target|}}} |Link title={{{title|}}} }}{{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | {{#set:Link targetUrl={{{target|}}}}}{{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }}| {{#set:Link targetPage={{{target|}}}}}{{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }}}}</includeonly> 01b74a36b32aeea7413dd9e8eab16fe284c3286e Template:IconLink 10 93 134 2015-11-05T19:45:57Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:56Z wikitext text/x-wiki <noinclude> __NOCACHE__ This is the "IconLink" template. It uses the ImageLink extension to render clickable Links with an Icon. {{PageSequence |prev=Vorlage:Link |next=Vorlage:Fixme |category=Template |categoryIcon=documents_new }} === Examples === <pre> {{IconLink}} </pre> {{IconLink}} <pre> {{IconLink|name=download|target=https://www.magicdraw.com/main.php?ts=download_demo&cmd_go_to_login=1&menu=download_demo&back_cmd=cmd_show|title=Magicdraw 18.0 LTR download}} </pre> {{IconLink|name=download|target=https://www.magicdraw.com/main.php?ts=download_demo&cmd_go_to_login=1&menu=download_demo&back_cmd=cmd_show|title=Magicdraw 18.0 LTR download}} <pre> {{IconLink|name=node|target=Template:PageSequence|title=PageSequence Template}} </pre> {{IconLink|name=node|target=Template:PageSequence|title=PageSequence Template}} </noinclude><includeonly>{{#ifeq: {{#sub:{{{target|}}}|0|4}} | http |<imgLink img='{{Icon|name={{{name|question_and_answer}}}|title={{{title|}}}}}' title='{{{title|}}}' href='{{{target|http://www.mediawiki.org}}}'></imgLink> |<imgLink img='{{Icon|name={{{name|question_and_answer}}}|title={{{title|}}}}}'>{{{target|Main Page}}}</imgLink> }}</includeonly> eb232f51f60b67e05ea16213de0e2894aa0b0deb Template:Done 10 94 135 2015-11-05T19:45:58Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:58Z wikitext text/x-wiki <noinclude> This is the Template ''Done'' === usage === <pre>{{Done}}</pre> {{Done}} <pre>{{Done|size=12}}</pre> {{Done|size=12}} <pre>{{Done|size=36}}</pre> {{Done|size=36}} <pre>{{Done|size=48}}</pre> {{Done|size=48}} [[Category:Template]] </noinclude><includeonly><span style='color:green;font-size:{{{size|24}}}px'>✓</span></includeonly> b50c2628591159a4b190d7f396826d11fa68909d Template:Sidif 10 95 136 2015-11-05T19:45:59Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:45:59Z wikitext text/x-wiki <noinclude> This is the Template <nowiki>sidif</nowiki>. It displays a link to the {{sidif}} website. === Usage === <pre> {{sidif}} </pre> ==== result ==== {{sidif}} === templates used === [[Template:Link]] </noinclude><includeonly>{{Link|target=http://www.sidif.org|title='''Si'''mple '''D'''ata '''I'''nterchange '''F'''ormat (SiDIF)}}</includeonly> 60796a12ee609949a7e168f6b21158d3971e5c00 Template:SmartMediaWiki 10 96 137 2015-11-05T19:46:01Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:46:00Z wikitext text/x-wiki [http://www.smartMediaWiki.org smartMediaWiki] e76180864b52ec6106023102453842d3ba1bfaa7 Template:TopicWikitasks 10 97 138 2015-11-05T19:46:02Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:46:01Z wikitext text/x-wiki <noinclude> This is the Template for the wikiTasks to generate Semantic Media Wiki related wiki pages for Topics [[Category:Template]] === usage === <pre> {{TopicWikitasks |context= |topic= |input= |plural= }} </pre> ==== Examples ==== <pre> {{TopicWikitasks |context=City |topic=City |plural=Cities |input=cities }} </pre> {{TopicWikitasks |context=City |topic=City |plural=Cities |input=cities }} </noinclude><includeonly> {{wikitask|cmd=login|input={{urlencode:{{#realname:Visitor}}}}}}<br> {{wikitask|cmd=reset}}<br> *{{Link|target=Template:Wikitask}} *{{Link|target=SiDIFTemplates}} {| class='wikitable sortable' ! {{{topic|}}} ! sidif ! smw |- ! template |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#template|targetpage=Template:{{{topic|}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#template|targetpage=Template:{{{topic|}}}}} |- ! form |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#form|targetpage=Form:{{{topic|}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#form|targetpage=Form:{{{topic|}}}}} |- ! list of |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#listof|targetpage=List of {{{plural|{{{topic|}}}s}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#listof|targetpage=List of {{{plural|{{{topic|}}}s}}}}} |- ! category |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#category|targetpage=Category:{{{topic|}}}}}{{Link|target=:Category:{{{topic|}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#category|targetpage=Category:{{{topic|}}}}}{{Link|target=:Category:{{{topic|}}}}} |- ! properties |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#properties|targetpage=Concept:{{{topic|}}}/properties}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#properties|targetpage=Concept:{{{topic|}}}/properties}} |- ! help |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#help|targetpage=Help:{{{topic|}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#help|targetpage=Help:{{{topic|}}}}} |- ! instances |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#instances|targetpage={{{plural|{{{topic|}}}s}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#instances|targetpage={{{plural|{{{topic|}}}s}}}}} |- ! concept | {{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#concept|targetpage=Concept:{{{topic|}}}}} | {{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#concept|targetpage=Concept:{{{topic|}}}}} |- ! java code |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#javacodegen|targetpage={{FULLPAGENAMEE}}#{{{topic|}}} JavaCode}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#javacodegen|targetpage={{FULLPAGENAMEE}}#{{{topic|}}} JavaCode}} |- | colspan='3' |<pre> {{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#javacodegen|targetpage={{FULLPAGENAMEE}}#{{{topic|}}} JavaCode}} </pre> |} </includeonly> 305faa9291c5405b12b37b9ca6b8294d08ed6dd1 Template:Wikitask 10 98 139 2015-11-05T19:46:03Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:46:02Z wikitext text/x-wiki <noinclude> __NOCACHE__ This is the wikitask template for issuing commands to a RESTFUL Java WikiServer. It uses [[Template:WikiIconTask]] for calling the WikiTask Server. == Examples == === login === <pre> {{wikitask|cmd=login|input={{urlencode:{{#realname:Visitor}}}}}} </pre> {{wikitask|cmd=login|input={{urlencode:{{#realname:Visitor}}}}}} {{#realname:visitor}} === help === <pre> {{wikitask|cmd=help}} </pre> {{wikitask|cmd=help}} === reset === <pre> {{wikitask|cmd=reset}} </pre> {{wikitask|cmd=reset}} === debug === <pre> {{wikitask|cmd=debug}} </pre> {{wikitask|cmd=debug}} === run template === ==== sidif input ==== <source lang='xml' id='dadlovesmum'> dad loves mum kid loves mum kid loves dad kid likes granny </source> ==== freemarker template ==== <source lang='java' id='triplegraph' > <#assign rankdir="TB"/> <#assign triples=tripleStore.getTriples()/> == Triple graph == <graphviz format='svg'> digraph { rankdir="${rankdir}"; <#list triples as triple> "${triple.subject}" -> "${triple.object}" [label="${triple.predicate}"]; </#list> } </graphviz> </source> <pre> {{wikitask|cmd=runtemplate|input=dadlovesmum|template=triplegraph|targetpage=Dad loves mum 2015-03-14}} </pre> {{wikitask|cmd=runtemplate|input=dadlovesmum|template=triplegraph|targetpage=Dad loves mum 2015-03-14}} </noinclude><includeonly>{{#switch:{{{cmd|}}} |runtemplate={{WikiIconTask|cmd={{{cmd|help}}}|icon=media_play_green|input={{{input|}}}|params={{{params|}}}|template={{{template|}}}|dialog={{{dialog|}}}|engine={{{engine|}}}|targetpage={{{targetpage|}}}}} -> [[{{{targetpage|}}}]] |help={{WikiIconTask|cmd={{{cmd}}}|icon=help}} |reset={{WikiIconTask|cmd={{{cmd}}}|icon=recycle}} |#default={{WikiIconTask|cmd={{{cmd|help}}}|icon=wrench|input={{{input|}}}|template={{{template|}}}|engine={{{engine|}}}|targetpage={{{targetpage|}}}}}}}</includeonly> e6541544fa074e0bef18811726c474eec83464e7 Template:WikiIconTask 10 99 140 2015-11-05T19:46:04Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:46:03Z wikitext text/x-wiki <noinclude> see [[Template:Wikitask]] <br> calls RESTFul Java WikiTask service on {{SERVERNAME}} === Examples=== <pre> {{WikiIconTask|cmd=help|icon=help}} </pre> {{WikiIconTask|cmd=help|icon=help}} <pre> {{WikiIconTask|cmd=debug|icon=wrench}} </pre> {{WikiIconTask|cmd=debug|icon=wrench}} <pre> {{WikiIconTask|cmd=reset|icon=wrench}} </pre> {{WikiIconTask|cmd=reset|icon=wrench}} === Source === <source lang='php'> <imgLink img='{{Icon|name={{{icon|}}}|title={{{cmd|}}}}}' target='_blank' title='{{{cmd|}}}' href='http://{{SERVERNAME}}:9089/wikiserver/task/{{{cmd|version}}} ?server={{urlencode:{{#sub:{{canonicalurl:{{PAGENAME}}}}|0|{{#pos:{{canonicalurl:{{PAGENAME}}}}|{{SCRIPTPATH}}/index.php/{{PAGENAMEE}}|0}}}}}} &scriptpath={{urlencode:{{SCRIPTPATH}}}} &contentlanguage={{CONTENTLANGUAGE}} &page={{FULLPAGENAMEE}} &input={{urlencode:{{{input|}}}}} &params={{urlencode:{{{params|}}}}} &template={{urlencode:{{{template|}}}}} &dialog={{urlencode:{{{dialog|}}}}} &engine={{{engine|}}} &targetpage={{urlencode:{{{targetpage|}}}}} &logo={{urlencode:{{{logo|http://web.bitplan.com/wp-content/uploads/sites/2/2013/05/mw_joomla_logo1.png}}}}}' > </imgLink> </source> === siteurl === {| !siteurl |{{#sub:{{canonicalurl:{{PAGENAME}}}}|0|{{#pos:{{canonicalurl:{{PAGENAME}}}}|{{SCRIPTPATH}}/index.php/{{PAGENAMEE}}|0}}}} |- !canonicalurl |{{canonicalurl:{{PAGENAME}}}} |- !PAGENAME |{{PAGENAME}} |- !SERVERNAME |{{SERVERNAME}} |- !SCRIPTPATH |{{SCRIPTPATH}} |- |} </noinclude><includeonly><imgLink img='{{Icon|name={{{icon|}}}|title={{{cmd|}}}}}' target='_blank' title='{{{cmd|}}}' href='http://{{SERVERNAME}}:9089/wikiserver/task/{{{cmd|version}}}?server={{urlencode:{{#sub:{{canonicalurl:{{PAGENAME}}}}|0|{{#pos:{{canonicalurl:{{PAGENAME}}}}|{{SCRIPTPATH}}/index.php/{{PAGENAMEE}}|0}}}}}}&scriptpath={{urlencode:{{SCRIPTPATH}}}}&contentlanguage={{CONTENTLANGUAGE}}&page={{FULLPAGENAMEE}}&input={{urlencode:{{{input|}}}}}&params={{urlencode:{{{params|}}}}}&template={{urlencode:{{{template|}}}}}&dialog={{urlencode:{{{dialog|}}}}}&engine={{{engine|}}}&targetpage={{urlencode:{{{targetpage|}}}}}&logo={{{logo|}}}'></imgLink></includeonly> e9b2fd0a92930fa984b8a4facc0c0adcd63cf06e Template:Icon 10 100 141 2015-11-05T19:46:06Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:46:05Z wikitext text/x-wiki <noinclude> __NOCACHE__ <!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT --> This is the template for BITPlan Iconfactory stock icons see [[:Category:Icon]] === examples === <pre> {{Icon}} </pre> {{Icon}} <pre> {{Icon|name=home}} </pre> {{Icon|name=home}} <pre> {{Icon|name=home}} </pre> {{Icon|name=home}} <pre> {{Icon|name=server}} </pre> {{Icon|name=server}} <pre> {{Icon|name=home|style=plain}} </pre> {{Icon|name=home|style=plain}} <pre> {{Icon|name=home|size=32}} </pre> {{Icon|name=home|size=32}} === Stockicons === [http://capri.bitplan.com/sonstiges/icons/com.bitplan.icons.IconsFactory48x48shadow.html 48x48Shadow] <file>/sonstiges/icons/48x48/shadow/</file> Application Basics: <file>/sonstiges/icons/icons_ap.pdf</file> Business and Data: <file>/sonstiges/icons/icons_bd.pdf</file> Flags of the World: <file>/sonstiges/icons/icons_fw.pdf</file> Network and Security: <file>/sonstiges/icons/icons_ns.pdf</file> Objects and People: <file>/sonstiges/icons/icons_op.pdf</file> === implementation === <source lang='html4strict'> http://capri.bitplan.com/sonstiges/icons/{{{size|48}}}x{{{size|48}}}/{{{style|shadow}}}/{{{name|question_and_answer}}}.png </source> ==== alternative Implementation ==== <pre> <img src='http://capri.bitplan.com/sonstiges/icons/{{{size|48}}}x{{{size|48}}}/{{{style|shadow}}}/{{{name|question_and_answer}}}.png'> </pre> [[Category:Template]]</noinclude><includeonly>{{#switch:{{{storemode|}}} |none= |#default={{#subobject:Icon_name={{{name|question_and_answer}}} |Icon style={{{style|shadow}}} |Icon size={{{size|48}}} }}}}http://capri.bitplan.com/sonstiges/icons/{{{size|48}}}x{{{size|48}}}/{{{style|shadow}}}/{{{name|question_and_answer}}}.png{{#switch:{{{viewmode|}}} |editable={{Icon|name=edit|size=16}}{{Link|target=Special:FormEdit/Icon/{{FULLPAGENAME}}|title=edit}}}}</includeonly> 33308160fef1172ce6d93404a02d2b304bd1ddf7 Template:Slide 10 101 142 2015-11-05T19:46:07Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:46:06Z wikitext text/x-wiki <noinclude> This is the template {{Link|target=Template:Slide|title=Slide}}. It belongs to the concept {{Link|target=:Category:Slide}}<br> You may find examples for the use of this template via the {{Link|target=List of Slides}}. === Usage === ==== viewmode plain ==== <pre>{{Slide |title=test title |pageno=test pageno |pages=test pages |next=test next |prev=test prev |presentation=test presentation |viewmode=plain }} </pre> {{Slide |title=test title |viewmode=plain |pageno=test pageno |viewmode=plain |pages=test pages |viewmode=plain |next=test next |viewmode=plain |prev=test prev |viewmode=plain |presentation=test presentation |viewmode=plain }} ==== viewmode nice ==== <pre>{{Slide |title=test title |pageno=test pageno |pages=test pages |next=test next |prev=test prev |presentation=test presentation |viewmode=nice }} </pre> {{Slide |title=test title |viewmode=nice |pageno=test pageno |viewmode=nice |pages=test pages |viewmode=nice |next=test next |viewmode=nice |prev=test prev |viewmode=nice |presentation=test presentation |viewmode=nice }} ==== viewmode master/detail ==== <pre>{{Slide |title=test title |pageno=test pageno |pages=test pages |next=test next |prev=test prev |presentation=test presentation |viewmode=master/detail }} </pre> {{Slide |title=test title |viewmode=master/detail |pageno=test pageno |viewmode=master/detail |pages=test pages |viewmode=master/detail |next=test next |viewmode=master/detail |prev=test prev |viewmode=master/detail |presentation=test presentation |viewmode=master/detail }} ==== viewmode link ==== <pre>{{Slide |title=test title |pageno=test pageno |pages=test pages |next=test next |prev=test prev |presentation=test presentation |viewmode=link }} </pre> {{Slide |title=test title |viewmode=link |pageno=test pageno |viewmode=link |pages=test pages |viewmode=link |next=test next |viewmode=link |prev=test prev |viewmode=link |presentation=test presentation |viewmode=link }} ==== viewmode editable ==== <pre>{{Slide |title=test title |pageno=test pageno |pages=test pages |next=test next |prev=test prev |presentation=test presentation |viewmode=editable }} </pre> {{Slide |title=test title |viewmode=editable |pageno=test pageno |viewmode=editable |pages=test pages |viewmode=editable |next=test next |viewmode=editable |prev=test prev |viewmode=editable |presentation=test presentation |viewmode=editable }} === Source === <source lang='html4strict'> <!-- This is a "pretty printed" version of the template source code due to MediaWiki's way of handling whitespace in templates the original source code can not be nicely indented and looks somewhat "ugly". Unfortunately you should therefore not cut&paste this pretty printed version between the <includeonly></includeonly> tag pair, parameters may be either positional or by name define named variables to normalize this --> {{#if:{{{1|}}} |{{#vardefine:title|{{{1|}}}}} |{{#vardefine:title|{{{title|}}}}} }}{{#if:{{{2|}}} |{{#vardefine:pageno|{{{2|}}}}} |{{#vardefine:pageno|{{{pageno|}}}}} }}{{#if:{{{3|}}} |{{#vardefine:pages|{{{3|}}}}} |{{#vardefine:pages|{{{pages|}}}}} }}{{#if:{{{4|}}} |{{#vardefine:next|{{{4|}}}}} |{{#vardefine:next|{{{next|}}}}} }}{{#if:{{{5|}}} |{{#vardefine:prev|{{{5|}}}}} |{{#vardefine:prev|{{{prev|}}}}} }}{{#if:{{{6|}}} |{{#vardefine:presentation|{{{6|}}}}} |{{#vardefine:presentation|{{{presentation|}}}}} }} <!-- set the semantic properties from the named variables each property having the same name as the variable with the concept name as a prefix --> {{#set: |Slide title={{#var:title}} |Slide pageno={{#var:pageno}} |Slide pages={{#var:pages}} |Slide next={{#var:next}} |Slide prev={{#var:prev}} |Slide presentation={{#var:presentation}} }} <!-- this is almost the same table that the Page Schemas extension would generate except the pipe symbols are escaped to allow the addition of further template logic with e.g. parser functions --> {{{!}} class="wikitable" !title {{!}}{{#var:title}} {{!}}- !# {{!}}{{#var:pageno}} {{!}}- !## {{!}}{{#var:pages}} {{!}}- !next {{!}}{{#var:next}} {{!}}- !prev {{!}}{{#var:prev}} {{!}}- !presentation {{!}}{{#var:presentation}} {{!}}- {{!}}} <!-- add an edit icon to not have to move the mouse so far for editing --> {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Slide/{{FULLPAGENAME}}|title=edit this Slide}}<br> <!-- add the category --> [[Category:Slide]] </source> Click on "Edit" to edit the Source of this Template.</noinclude><includeonly>{{#if:{{{1|}}} |{{#vardefine:title|{{{1|}}}}} |{{#vardefine:title|{{{title|}}}}} }}{{#if:{{{2|}}} |{{#vardefine:pageno|{{{2|}}}}} |{{#vardefine:pageno|{{{pageno|}}}}} }}{{#if:{{{3|}}} |{{#vardefine:pages|{{{3|}}}}} |{{#vardefine:pages|{{{pages|}}}}} }}{{#if:{{{4|}}} |{{#vardefine:next|{{{4|}}}}} |{{#vardefine:next|{{{next|}}}}} }}{{#if:{{{5|}}} |{{#vardefine:prev|{{{5|}}}}} |{{#vardefine:prev|{{{prev|}}}}} }}{{#if:{{{6|}}} |{{#vardefine:presentation|{{{6|}}}}} |{{#vardefine:presentation|{{{presentation|}}}}} }}{{#set: |Slide title={{#var:title}} |Slide pageno={{#var:pageno}} |Slide pages={{#var:pages}} |Slide next={{#var:next}} |Slide prev={{#var:prev}} |Slide presentation={{#var:presentation}} }}{{{!}} class="wikitable" !title {{!}}{{#var:title}} {{!}}- !# {{!}}{{#var:pageno}} {{!}}- !## {{!}}{{#var:pages}} {{!}}- !next {{!}}{{#var:next}} {{!}}- !prev {{!}}{{#var:prev}} {{!}}- !presentation {{!}}{{#var:presentation}} {{!}}- {{!}}} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Slide/{{FULLPAGENAME}}|title=edit this Slide}}<br> [[Category:Slide]] </includeonly> 37df283bcfd126e903a70692c51fecf4721a01b8 Template:Presentation 10 102 143 2015-11-05T19:46:09Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:46:08Z wikitext text/x-wiki <noinclude> This is the template {{Link|target=Template:Presentation|title=Presentation}}. It belongs to the concept {{Link|target=:Category:Presentation}}<br> You may find examples for the use of this template via the {{Link|target=List of Presentations}}. === Usage === ==== viewmode plain ==== <pre>{{Presentation |title=test title |author=test author |start=test start |noofpages=test noofpages |viewmode=plain }} </pre> {{Presentation |title=test title |viewmode=plain |author=test author |viewmode=plain |start=test start |viewmode=plain |noofpages=test noofpages |viewmode=plain }} ==== viewmode nice ==== <pre>{{Presentation |title=test title |author=test author |start=test start |noofpages=test noofpages |viewmode=nice }} </pre> {{Presentation |title=test title |viewmode=nice |author=test author |viewmode=nice |start=test start |viewmode=nice |noofpages=test noofpages |viewmode=nice }} ==== viewmode master/detail ==== <pre>{{Presentation |title=test title |author=test author |start=test start |noofpages=test noofpages |viewmode=master/detail }} </pre> {{Presentation |title=test title |viewmode=master/detail |author=test author |viewmode=master/detail |start=test start |viewmode=master/detail |noofpages=test noofpages |viewmode=master/detail }} ==== viewmode link ==== <pre>{{Presentation |title=test title |author=test author |start=test start |noofpages=test noofpages |viewmode=link }} </pre> {{Presentation |title=test title |viewmode=link |author=test author |viewmode=link |start=test start |viewmode=link |noofpages=test noofpages |viewmode=link }} ==== viewmode editable ==== <pre>{{Presentation |title=test title |author=test author |start=test start |noofpages=test noofpages |viewmode=editable }} </pre> {{Presentation |title=test title |viewmode=editable |author=test author |viewmode=editable |start=test start |viewmode=editable |noofpages=test noofpages |viewmode=editable }} === Source === <source lang='html4strict'> <!-- This is a "pretty printed" version of the template source code due to MediaWiki's way of handling whitespace in templates the original source code can not be nicely indented and looks somewhat "ugly". Unfortunately you should therefore not cut&paste this pretty printed version between the <includeonly></includeonly> tag pair, parameters may be either positional or by name define named variables to normalize this --> {{#if:{{{1|}}} |{{#vardefine:title|{{{1|}}}}} |{{#vardefine:title|{{{title|}}}}} }}{{#if:{{{2|}}} |{{#vardefine:author|{{{2|}}}}} |{{#vardefine:author|{{{author|}}}}} }}{{#if:{{{3|}}} |{{#vardefine:start|{{{3|}}}}} |{{#vardefine:start|{{{start|}}}}} }}{{#if:{{{4|}}} |{{#vardefine:noofpages|{{{4|}}}}} |{{#vardefine:noofpages|{{{noofpages|}}}}} }} <!-- set the semantic properties from the named variables each property having the same name as the variable with the concept name as a prefix --> {{#set: |Presentation title={{#var:title}} |Presentation author={{#var:author}} |Presentation start={{#var:start}} |Presentation noofpages={{#var:noofpages}} }} <!-- this is almost the same table that the Page Schemas extension would generate except the pipe symbols are escaped to allow the addition of further template logic with e.g. parser functions --> {{{!}} class="wikitable" !title {{!}}[[Presentation title::{{{title|}}}]] {{!}}- !author {{!}}[[Presentation author::{{{author|}}}]] {{!}}- !start {{!}}[[Presentation start::{{{start|}}}]] {{!}}- !# of pages {{!}}[[Presentation noofpages::{{{noofpages|}}}]] {{!}}- {{!}}} <!-- add an edit icon to not have to move the mouse so far for editing --> {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Presentation/{{FULLPAGENAME}}|title=edit this Presentation}}<br> <!-- add the category --> [[Category:Presentation]] </source> Click on "Edit" to edit the Source of this Template.</noinclude><includeonly>{{#if:{{{1|}}} |{{#vardefine:title|{{{1|}}}}} |{{#vardefine:title|{{{title|}}}}} }}{{#if:{{{2|}}} |{{#vardefine:author|{{{2|}}}}} |{{#vardefine:author|{{{author|}}}}} }}{{#if:{{{3|}}} |{{#vardefine:start|{{{3|}}}}} |{{#vardefine:start|{{{start|}}}}} }}{{#if:{{{4|}}} |{{#vardefine:noofpages|{{{4|}}}}} |{{#vardefine:noofpages|{{{noofpages|}}}}} }}{{#set: |Presentation title={{#var:title}} |Presentation author={{#var:author}} |Presentation start={{#var:start}} |Presentation noofpages={{#ask: [[Concept:Slide]] [[Slide_presentation::{{FULLPAGENAME}}]] |format=count }} }}{{{!}} class="wikitable" !title {{!}}[[Presentation title::{{{title|}}}]] {{!}}- !author {{!}}[[Presentation author::{{{author|}}}]] {{!}}- !start {{!}}[[Presentation start::{{{start|}}}]] {{!}}- !# of pages {{!}}[[Presentation noofpages::{{{noofpages|}}}]] {{!}}- {{!}}} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Presentation/{{FULLPAGENAME}}|title=edit this Presentation}}<br> {{#if:{{{title|}}}| === Slides === {{#ask: [[Concept:Slide]] [[Slide_presentation::{{FULLPAGENAME}}]] | ?Slide_title | ?Slide_pageno | ?Slide_pages | ?Slide_next | ?Slide_prev | sort=Slide_pageno }} Numer of slides in this presentation: {{#ask: [[Concept:Slide]] [[Slide_presentation::{{FULLPAGENAME}}]] |format=count }} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Slide/|title=create a new slide for this presentation this Slide one step }}<br> {{Icon|name=edit|size=24}}{{#forminput:form=Slide|button text=create a new Slide two step}}<br> }} [[Category:Presentation]] </includeonly> c6c7f1e75ef18a40311a3a2298e7b63187288b59 Template:PageSequence 10 103 144 2015-11-05T19:46:11Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:46:10Z wikitext text/x-wiki <noinclude> __NOCACHE__ This is the PageSequence template it allows for prev/next style page sequences to displayed with icons. See [[Template:Icon]] <pre> {{PageSequence |prev= |next= }} </pre> === example === <pre> {{PageSequence|prev=|next=Universal_Password_Manager_installation|category=Installationsanleitung|categoryIcon=box_software}} </pre> {{PageSequence|prev=|next=Universal_Password_Manager_installation|category=Installationsanleitung|categoryIcon=box_software}} <pre> {{PageSequence |prev=Vorlage:Icon |next=Vorlage:Link |category=Template |categoryIcon=documents_new }} </pre> {{PageSequence |prev=Vorlage:Icon |next=Vorlage:Link |category=Template |categoryIcon=documents_new }} <pre> {{PageSequence|prev=Workdocumentation 2015-03-02|next=Workdocumentation 2015-03-04|category=Workdocumentation|categoryIcon=notebook_preferences}} </pre> {{PageSequence|prev=Workdocumentation 2015-03-02|next=Workdocumentation 2015-03-04|category=Workdocumentation|categoryIcon=notebook_preferences}} [[Category:Template]] </noinclude><includeonly>{{#set: |PageSequence next={{{next|}}} |PageSequence prev={{{prev|}}} |PageSequence category={{{category|}}} |PageSequence categoryIcon={{{categoryIcon|}}} }} <div style="display:table;border-collapse: collapse;"><div style="display: table-row;"> <div style="display: table-cell; vertical-align: middle">{{#if: {{{prev|}}}| {{#ifexist: {{{prev}}} |<imgLink img='{{Icon|name=nav_left_blue|title=previous}}'>{{{prev|}}}</imgLink> |<imgLink img='{{Icon|name=nav_left_red|title=previous}}'>{{{prev|}}}</imgLink>}} }} </div> <div style="display: table-cell;"> <div style="display: table-row;">{{#if: {{{categoryIcon|}}} |<imgLink img='{{Icon|name={{{categoryIcon|}}}|title={{{category|}}}}}'>:Category:{{{category|}}}</imgLink> }} </div> <div style="display: table-row;">{{Icon|name=edit|size=16}}{{Link|target=Special:FormEdit/PageSequence/{{FULLPAGENAME}}|title=edit}}</div> </div> <div style="display: table-cell; vertical-align: middle">{{#if: {{{next|}}} |{{#ifexist: {{{next}}} |<imgLink img='{{Icon|name=nav_right_blue|title=next}}'>{{{next|}}}</imgLink> |<imgLink img='{{Icon|name=nav_right_red|title=next}}'>{{{next|}}}</imgLink> }} }} </div> </div></div>{{#if: {{{category|}}} |[[Category:{{{category|}}}]] }}</includeonly> 36e0e8317e91c6f9b68944bcd21c79b2d3284e63 Template:WorkSequence 10 104 145 2015-11-05T19:46:12Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:46:11Z wikitext text/x-wiki {{PageSequence|prev={{{prev|}}}|next={{{next|}}}|category=Workdocumentation|categoryIcon=notebook_preferences}} e2b7092f105757aee5c69ee88a77f2c178104411 Template:ContextWikitask 10 105 146 2015-11-05T19:46:14Z Wf 1 transfered by WikiBackup wikiTask at 2015-11-05T19:46:13Z wikitext text/x-wiki <noinclude> This is the Template for the wikiTasks to generate Semantic Media Wiki related wiki pages for a Context [[Category:Template]] === usage === <pre> {{ContextWikitask |context= }} </pre> ==== Examples ==== <pre> {{ContextWikitask |context=Presentation }} </pre> {{ContextWikitask |context=Presentation }} </noinclude><includeonly> {{wikitask|cmd=login|input={{urlencode:{{#realname:Visitor}}}}}}<br> {{wikitask|cmd=reset}}<br> *{{Link|target=Template:Wikitask}} *{{Link|target=TopicGenerator}} *{{Link|target=SiDIFTemplates}} {| class='wikitable sortable' !dialog smw !dialog sidif !no dialog smw !no dialog sidif |- | {{wikitask|cmd=runtemplate|engine=Rythm|input=sidif|dialog=TopicGenerator#dialog|template=TopicGenerator#template|params=tripleStoreMode:SMW,contextName:{{{context|}}}|targetpage=TopicGenerator2015/{{{context|}}}}} | {{wikitask|cmd=runtemplate|engine=Rythm|input=sidif|dialog=TopicGenerator#dialog|template=TopicGenerator#template|params=sidifInput:{{FULLPAGENAME}}#sidif,contextName:{{{context|}}}|targetpage=TopicGenerator2015/{{{context|}}}}} |{{wikitask|cmd=runtemplate|engine=Rythm|input=sidif|template=TopicGenerator#template|params=tripleStoreMode:SMW,contextName:{{{context|}}}|targetpage=TopicGenerator2015/{{{context|}}}}} |{{wikitask|cmd=runtemplate|engine=Rythm|input=sidif|template=TopicGenerator#template|params=sidifInput:{{FULLPAGENAME}}#sidif,contextName:{{{context|}}}|targetpage=TopicGenerator2015/{{{context|}}}}} |} </includeonly> 39bcd31bfa334493c3b7ea115db5fb7099369fa6 Category:Context 14 106 147 2015-11-06T06:45:09Z Wf 1 created by WikiTask 2015-11-06T06:45:07Z wikitext text/x-wiki __NOTOC__ {{#ask: [[Topic name::Context]] | ?Topic wikiDocumentation= | mainlabel=-}} Contexts may be added and edited with the form [[has default form::Context]] * [[List of Contexts]] <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> Context description <div class="mw-collapsible-content"> === uml === <uml> title Context note as ContextDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as ContextNote A Context groups some topics like a Namespace/Package end note class Context { Text name } ContextNote .. Context Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> * [[Help:Context]] * [[Concept:Context]] * [[:Template:Context]] * [[:Form:Context]] === Properties === * [[Property:Context name]] </div> </div> 13d0056c4cc2e00b0d14400ef7ac26fc01bee5ae List of Contexts 0 107 148 2015-11-06T06:45:13Z Wf 1 created by WikiTask 2015-11-06T06:45:12Z wikitext text/x-wiki __NOCACHE__ {{#ask: [[Topic name::Context]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} == Contexts == {{#ask: [[Concept:Context]] | ?Context name = name }} {{#forminput:form=Context|button text=add Context}} <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> === SiDIF === <div class="mw-collapsible-content"> {{#ask: [[Concept:Context]] | ?#=pageid | ?Context name = name | mainlabel=- | format=template | named args=yes | template=Context | userparam=sidif | limit=300 }} </div> </div> [[:Category:Context]] 2a5dd1139fb25b2ff4ab982cbdbf6ee4c6a71db1 Help:Context 12 108 149 2015-11-06T06:45:17Z Wf 1 created by WikiTask 2015-11-06T06:45:15Z wikitext text/x-wiki == Help for Context == {{#ask: [[Topic name::Context]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} === Documentation === A Context groups some topics like a Namespace/Package === Example Contexts === {{#ask: [[Concept:Context]] }} === Properties === {{#ask: [[Concept:Property]][[Property topic::Concept:Context]] | ?Property documentation = documentation | ?Property type = type | ?Property name = name | ?Property label = label | ?Property allowedValues = allowedValues | ?Property mandatory = mandatory | ?Property uploadable = uploadable |format=table }} === uml === <uml> title Context note as ContextDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as ContextNote A Context groups some topics like a Namespace/Package end note class Context { Text name } ContextNote .. Context Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> see also * [[List of Contexts]] * [[Help:Context]] * [[Concept:Context]] * [[:Category:Context]] * [[:Template:Context]] * [[:Form:Context]] topic links: * [[:Category:Topic]] [[Category:Context]] 1635d0d02822968170de4a45767374d845e93d16 Form:Context 106 109 150 2015-11-06T06:45:21Z Wf 1 created by WikiTask 2015-11-06T06:45:20Z wikitext text/x-wiki <noinclude> This is the {{smartMediaWiki}}-Form for "Context". Create a new Context by entering a new pagename for a Context into the field below. If you enter an existing Context pagename - you will edit the Context with that pagename. {{#forminput:form=Context|values from concept=Context}} </noinclude><includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> <!-- Context --> {{{for template|Context}}} {| class="wikitable" ! colspan='2'| Context |- ! name: <!-- Text name --> | {{{field|name|input type=|property=Context name|size=80|mandatory}}} |- |} {{{field|storemode|default=property|hidden}}} {{{end template}}} <!-- Context --> '''Freitext:''' {{{standard input|free text|rows=10}}} {{{standard input|summary}}} {{{standard input|minor edit}}} {{{standard input|watch}}} {{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}} </includeonly> d27f3c30e2a9d3efe55a4c498b7b408aec9da987 Template:Context 10 110 151 2015-11-06T06:45:24Z Wf 1 created by WikiTask 2015-11-06T06:45:23Z wikitext text/x-wiki <noinclude> <!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> This is the template {{Link|target=Template:Context|title=Context}}. It belongs to the concept/topic {{Link|target=:Concept:Context}}<br> You may find examples for the use of this template via the {{Link|target=List of Contexts}}. === Usage === ==== storemode subobject ==== <pre>{{Context |name= |storemode=subobject }} </pre> ==== storemode property ==== <pre>{{Context |name= |storemode=property }} </pre> ==== storemode none ==== <pre>{{Context |name= |storemode=none }} </pre> ==== viewmode tableheader ==== <pre>{{Context |name= |viewmode=tableheader }} </pre> ==== viewmode tablerow ==== <pre>{{Context |name= |viewmode=tablerow }} </pre> ==== viewmode tablefooter ==== <pre>{{Context |name= |viewmode=tablefooter }} </pre> ==== viewmode labelfield ==== <pre>{{Context |name= |viewmode=labelfield }} </pre> === Source === <source lang='html4strict'> {{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Context<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Context |Context name={{{name|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= === topics === {{#ask:[[Concept:Topic]][[Topic context::{{FULLPAGENAME}}]] | ?Topic name = name | ?Topic pluralName = pluralName | ?Topic icon = icon | ?Topic iconUrl = iconUrl | ?Topic documentation = documentation | ?Topic wikiDocumentation = wikiDocumentation | ?Topic defaultstoremode = defaultstoremode | ?Topic listLimit = listLimit | ?Topic cargo = cargo | ?Topic context = context }} |tableheader={{{!}} class='wikitable' !name {{!}}- |tablerow= {{!}}{{{name|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Context {{!}}- !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- {{!}}} }} }} [[Category:Context]] </source> Click on "Edit" to edit the Source of this Template. </noinclude><includeonly>{{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Context<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Context |Context name={{{name|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= === topics === {{#ask:[[Concept:Topic]][[Topic context::{{FULLPAGENAME}}]] | ?Topic name = name | ?Topic pluralName = pluralName | ?Topic icon = icon | ?Topic iconUrl = iconUrl | ?Topic documentation = documentation | ?Topic wikiDocumentation = wikiDocumentation | ?Topic defaultstoremode = defaultstoremode | ?Topic listLimit = listLimit | ?Topic cargo = cargo | ?Topic context = context }} |tableheader={{{!}} class='wikitable' !name {{!}}- |tablerow= {{!}}{{{name|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Context {{!}}- !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- {{!}}} }} }} [[Category:Context]]</includeonly> 50c999b6cbfc0965af6d41d063bc97b3c72ee007 Concept:Context/Java 108 111 152 2015-11-06T06:45:28Z Wf 1 created by WikiTask 2015-11-06T06:45:27Z wikitext text/x-wiki === java code === <source lang='java' id='javacode'>@// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @def static { /** * Base class */ static abstract class TopicBase { /** * initialize */ public void init(TripleQuery query) { } } // TopicBase /** * Context * A Context groups some topics like a Namespace/Package */ public static class Context extends TopicBase { public String pageid; public String name; public String getName() { return name; } public void setName(String pName) { name=pName; } /** * convert this Context to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Context */ public Context() {} /** * construct a Context from the given Triple * @param query - the TripleQuery to get the triples from * @param pContextTriple - the triple to construct me from */ public Context(TripleQuery query,Triple pContextTriple) { this(query,pContextTriple.getSubject().toString()); } // constructor /** * construct a Context from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Context(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Context_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); init(query); } // constructor for Context // >>>{user defined topic code}{Context}{Context} // <<<{user defined topic code}{Context}{Context} } // class Context /** * Manager for Context */ public static class ContextManager extends TopicBase { public String topicName="Context"; public transient List<Context> mContexts=new ArrayList<Context>(); public transient Map<String,Context> mContextMap=new LinkedHashMap<String,Context>(); /** * get my Contexts */ public List<Context> getContexts() { List<Context> result=this.mContexts; return result; } /** * add a new Context */ public Context add(Context pContext) { mContexts.add(pContext); mContextMap.put(pContext.getPageid(),pContext); return pContext; } /** * add a new Context from the given triple */ public Context add(TripleQuery query,Triple pContextTriple) { Context lContext=new Context(query,pContextTriple); add(lContext); return lContext; } // reinitialize my mContext map public void reinit() { mContextMap.clear(); for (Context lContext:mContexts) { mContextMap.put(lContext.getPageid(),lContext); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ContextManager fromJson(String json) { ContextManager result=JSON.parseObject(json, ContextManager.class); result.reinit(); return result; } // default constructor public ContextManager() {} // construct me from the given triple Query query public ContextManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lContextQuery=query.query(null,"isA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } // then the SMW triplestore lContextQuery=query.query(null,"Property:IsA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } init(query); } // constructor for Context Manager // >>>{user defined topicmanager code}{Context}{Context} // <<<{user defined topicmanager code}{Context}{Context} } // class Context Manager /** * Property * a Property is a Feature/Attribute of a Topic */ public static class Property extends TopicBase { public String pageid; public String name; public String label; public String type; public String index; public String sortPos; public String primaryKey; public String mandatory; public String namespace; public String size; public String uploadable; public String defaultValue; public String inputType; public String allowedValues; public String documentation; public String values_from; public String showInGrid; public String isLink; public String nullable; public String topic; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getLabel() { return label; } public void setLabel(String pLabel) { label=pLabel; } public String getType() { return type; } public void setType(String pType) { type=pType; } public String getIndex() { return index; } public void setIndex(String pIndex) { index=pIndex; } public String getSortPos() { return sortPos; } public void setSortPos(String pSortPos) { sortPos=pSortPos; } public String getPrimaryKey() { return primaryKey; } public void setPrimaryKey(String pPrimaryKey) { primaryKey=pPrimaryKey; } public String getMandatory() { return mandatory; } public void setMandatory(String pMandatory) { mandatory=pMandatory; } public String getNamespace() { return namespace; } public void setNamespace(String pNamespace) { namespace=pNamespace; } public String getSize() { return size; } public void setSize(String pSize) { size=pSize; } public String getUploadable() { return uploadable; } public void setUploadable(String pUploadable) { uploadable=pUploadable; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String pDefaultValue) { defaultValue=pDefaultValue; } public String getInputType() { return inputType; } public void setInputType(String pInputType) { inputType=pInputType; } public String getAllowedValues() { return allowedValues; } public void setAllowedValues(String pAllowedValues) { allowedValues=pAllowedValues; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getValues_from() { return values_from; } public void setValues_from(String pValues_from) { values_from=pValues_from; } public String getShowInGrid() { return showInGrid; } public void setShowInGrid(String pShowInGrid) { showInGrid=pShowInGrid; } public String getIsLink() { return isLink; } public void setIsLink(String pIsLink) { isLink=pIsLink; } public String getNullable() { return nullable; } public void setNullable(String pNullable) { nullable=pNullable; } public String getTopic() { return topic; } public void setTopic(String pTopic) { topic=pTopic; } /** * convert this Property to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Property */ public Property() {} /** * construct a Property from the given Triple * @param query - the TripleQuery to get the triples from * @param pPropertyTriple - the triple to construct me from */ public Property(TripleQuery query,Triple pPropertyTriple) { this(query,pPropertyTriple.getSubject().toString()); } // constructor /** * construct a Property from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Property(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Property_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple labelTriple=query.selectSingle(pageid,"label",null); if (labelTriple==null) labelTriple=query.selectSingle(pageid,"Property:Property_label",null); if (labelTriple!=null) label=labelTriple.getObject().toString(); Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:Property_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple indexTriple=query.selectSingle(pageid,"index",null); if (indexTriple==null) indexTriple=query.selectSingle(pageid,"Property:Property_index",null); if (indexTriple!=null) index=indexTriple.getObject().toString(); Triple sortPosTriple=query.selectSingle(pageid,"sortPos",null); if (sortPosTriple==null) sortPosTriple=query.selectSingle(pageid,"Property:Property_sortPos",null); if (sortPosTriple!=null) sortPos=sortPosTriple.getObject().toString(); Triple primaryKeyTriple=query.selectSingle(pageid,"primaryKey",null); if (primaryKeyTriple==null) primaryKeyTriple=query.selectSingle(pageid,"Property:Property_primaryKey",null); if (primaryKeyTriple!=null) primaryKey=primaryKeyTriple.getObject().toString(); Triple mandatoryTriple=query.selectSingle(pageid,"mandatory",null); if (mandatoryTriple==null) mandatoryTriple=query.selectSingle(pageid,"Property:Property_mandatory",null); if (mandatoryTriple!=null) mandatory=mandatoryTriple.getObject().toString(); Triple namespaceTriple=query.selectSingle(pageid,"namespace",null); if (namespaceTriple==null) namespaceTriple=query.selectSingle(pageid,"Property:Property_namespace",null); if (namespaceTriple!=null) namespace=namespaceTriple.getObject().toString(); Triple sizeTriple=query.selectSingle(pageid,"size",null); if (sizeTriple==null) sizeTriple=query.selectSingle(pageid,"Property:Property_size",null); if (sizeTriple!=null) size=sizeTriple.getObject().toString(); Triple uploadableTriple=query.selectSingle(pageid,"uploadable",null); if (uploadableTriple==null) uploadableTriple=query.selectSingle(pageid,"Property:Property_uploadable",null); if (uploadableTriple!=null) uploadable=uploadableTriple.getObject().toString(); Triple defaultValueTriple=query.selectSingle(pageid,"defaultValue",null); if (defaultValueTriple==null) defaultValueTriple=query.selectSingle(pageid,"Property:Property_defaultValue",null); if (defaultValueTriple!=null) defaultValue=defaultValueTriple.getObject().toString(); Triple inputTypeTriple=query.selectSingle(pageid,"inputType",null); if (inputTypeTriple==null) inputTypeTriple=query.selectSingle(pageid,"Property:Property_inputType",null); if (inputTypeTriple!=null) inputType=inputTypeTriple.getObject().toString(); Triple allowedValuesTriple=query.selectSingle(pageid,"allowedValues",null); if (allowedValuesTriple==null) allowedValuesTriple=query.selectSingle(pageid,"Property:Property_allowedValues",null); if (allowedValuesTriple!=null) allowedValues=allowedValuesTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Property_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple values_fromTriple=query.selectSingle(pageid,"values_from",null); if (values_fromTriple==null) values_fromTriple=query.selectSingle(pageid,"Property:Property_values_from",null); if (values_fromTriple!=null) values_from=values_fromTriple.getObject().toString(); Triple showInGridTriple=query.selectSingle(pageid,"showInGrid",null); if (showInGridTriple==null) showInGridTriple=query.selectSingle(pageid,"Property:Property_showInGrid",null); if (showInGridTriple!=null) showInGrid=showInGridTriple.getObject().toString(); Triple isLinkTriple=query.selectSingle(pageid,"isLink",null); if (isLinkTriple==null) isLinkTriple=query.selectSingle(pageid,"Property:Property_isLink",null); if (isLinkTriple!=null) isLink=isLinkTriple.getObject().toString(); Triple nullableTriple=query.selectSingle(pageid,"nullable",null); if (nullableTriple==null) nullableTriple=query.selectSingle(pageid,"Property:Property_nullable",null); if (nullableTriple!=null) nullable=nullableTriple.getObject().toString(); Triple topicTriple=query.selectSingle(pageid,"topic",null); if (topicTriple==null) topicTriple=query.selectSingle(pageid,"Property:Property_topic",null); if (topicTriple!=null) topic=topicTriple.getObject().toString(); init(query); } // constructor for Property // >>>{user defined topic code}{Property}{Property} // <<<{user defined topic code}{Property}{Property} } // class Property /** * Manager for Property */ public static class PropertyManager extends TopicBase { public String topicName="Property"; public transient List<Property> mPropertys=new ArrayList<Property>(); public transient Map<String,Property> mPropertyMap=new LinkedHashMap<String,Property>(); /** * get my Properties */ public List<Property> getProperties() { List<Property> result=this.mPropertys; return result; } /** * add a new Property */ public Property add(Property pProperty) { mPropertys.add(pProperty); mPropertyMap.put(pProperty.getPageid(),pProperty); return pProperty; } /** * add a new Property from the given triple */ public Property add(TripleQuery query,Triple pPropertyTriple) { Property lProperty=new Property(query,pPropertyTriple); add(lProperty); return lProperty; } // reinitialize my mProperty map public void reinit() { mPropertyMap.clear(); for (Property lProperty:mPropertys) { mPropertyMap.put(lProperty.getPageid(),lProperty); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static PropertyManager fromJson(String json) { PropertyManager result=JSON.parseObject(json, PropertyManager.class); result.reinit(); return result; } // default constructor public PropertyManager() {} // construct me from the given triple Query query public PropertyManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lPropertyQuery=query.query(null,"isA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } // then the SMW triplestore lPropertyQuery=query.query(null,"Property:IsA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } init(query); } // constructor for Property Manager // >>>{user defined topicmanager code}{Property}{Property} // <<<{user defined topicmanager code}{Property}{Property} } // class Property Manager /** * SMW_Type * an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes */ public static class SMW_Type extends TopicBase { public String pageid; public String type; public String documentation; public String helppage; public String typepage; public String javaType; public String usedByProperties; public String getType() { return type; } public void setType(String pType) { type=pType; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getHelppage() { return helppage; } public void setHelppage(String pHelppage) { helppage=pHelppage; } public String getTypepage() { return typepage; } public void setTypepage(String pTypepage) { typepage=pTypepage; } public String getJavaType() { return javaType; } public void setJavaType(String pJavaType) { javaType=pJavaType; } public String getUsedByProperties() { return usedByProperties; } public void setUsedByProperties(String pUsedByProperties) { usedByProperties=pUsedByProperties; } /** * convert this SMW_Type to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for SMW_Type */ public SMW_Type() {} /** * construct a SMW_Type from the given Triple * @param query - the TripleQuery to get the triples from * @param pSMW_TypeTriple - the triple to construct me from */ public SMW_Type(TripleQuery query,Triple pSMW_TypeTriple) { this(query,pSMW_TypeTriple.getSubject().toString()); } // constructor /** * construct a SMW_Type from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public SMW_Type(TripleQuery query,String pageid) { this.pageid=pageid; Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:SMW_Type_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:SMW_Type_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple helppageTriple=query.selectSingle(pageid,"helppage",null); if (helppageTriple==null) helppageTriple=query.selectSingle(pageid,"Property:SMW_Type_helppage",null); if (helppageTriple!=null) helppage=helppageTriple.getObject().toString(); Triple typepageTriple=query.selectSingle(pageid,"typepage",null); if (typepageTriple==null) typepageTriple=query.selectSingle(pageid,"Property:SMW_Type_typepage",null); if (typepageTriple!=null) typepage=typepageTriple.getObject().toString(); Triple javaTypeTriple=query.selectSingle(pageid,"javaType",null); if (javaTypeTriple==null) javaTypeTriple=query.selectSingle(pageid,"Property:SMW_Type_javaType",null); if (javaTypeTriple!=null) javaType=javaTypeTriple.getObject().toString(); Triple usedByPropertiesTriple=query.selectSingle(pageid,"usedByProperties",null); if (usedByPropertiesTriple==null) usedByPropertiesTriple=query.selectSingle(pageid,"Property:SMW_Type_usedByProperties",null); if (usedByPropertiesTriple!=null) usedByProperties=usedByPropertiesTriple.getObject().toString(); init(query); } // constructor for SMW_Type // >>>{user defined topic code}{SMW_Type}{SMW_Type} // <<<{user defined topic code}{SMW_Type}{SMW_Type} } // class SMW_Type /** * Manager for SMW_Type */ public static class SMW_TypeManager extends TopicBase { public String topicName="SMW_Type"; public transient List<SMW_Type> mSMW_Types=new ArrayList<SMW_Type>(); public transient Map<String,SMW_Type> mSMW_TypeMap=new LinkedHashMap<String,SMW_Type>(); /** * get my SMW_Types */ public List<SMW_Type> getSMW_Types() { List<SMW_Type> result=this.mSMW_Types; return result; } /** * add a new SMW_Type */ public SMW_Type add(SMW_Type pSMW_Type) { mSMW_Types.add(pSMW_Type); mSMW_TypeMap.put(pSMW_Type.getPageid(),pSMW_Type); return pSMW_Type; } /** * add a new SMW_Type from the given triple */ public SMW_Type add(TripleQuery query,Triple pSMW_TypeTriple) { SMW_Type lSMW_Type=new SMW_Type(query,pSMW_TypeTriple); add(lSMW_Type); return lSMW_Type; } // reinitialize my mSMW_Type map public void reinit() { mSMW_TypeMap.clear(); for (SMW_Type lSMW_Type:mSMW_Types) { mSMW_TypeMap.put(lSMW_Type.getPageid(),lSMW_Type); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static SMW_TypeManager fromJson(String json) { SMW_TypeManager result=JSON.parseObject(json, SMW_TypeManager.class); result.reinit(); return result; } // default constructor public SMW_TypeManager() {} // construct me from the given triple Query query public SMW_TypeManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lSMW_TypeQuery=query.query(null,"isA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } // then the SMW triplestore lSMW_TypeQuery=query.query(null,"Property:IsA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } init(query); } // constructor for SMW_Type Manager // >>>{user defined topicmanager code}{SMW_Type}{SMW_Type} // <<<{user defined topicmanager code}{SMW_Type}{SMW_Type} } // class SMW_Type Manager /** * Topic * A Topic is a Concept/Class/Thing/Entity */ public static class Topic extends TopicBase { public String pageid; public String name; public String pluralName; public String icon; public String iconUrl; public String documentation; public String wikiDocumentation; public String defaultstoremode; public String listLimit; public String cargo; public String context; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getPluralName() { return pluralName; } public void setPluralName(String pPluralName) { pluralName=pPluralName; } public String getIcon() { return icon; } public void setIcon(String pIcon) { icon=pIcon; } public String getIconUrl() { return iconUrl; } public void setIconUrl(String pIconUrl) { iconUrl=pIconUrl; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getWikiDocumentation() { return wikiDocumentation; } public void setWikiDocumentation(String pWikiDocumentation) { wikiDocumentation=pWikiDocumentation; } public String getDefaultstoremode() { return defaultstoremode; } public void setDefaultstoremode(String pDefaultstoremode) { defaultstoremode=pDefaultstoremode; } public String getListLimit() { return listLimit; } public void setListLimit(String pListLimit) { listLimit=pListLimit; } public String getCargo() { return cargo; } public void setCargo(String pCargo) { cargo=pCargo; } public String getContext() { return context; } public void setContext(String pContext) { context=pContext; } /** * convert this Topic to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Topic */ public Topic() {} /** * construct a Topic from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicTriple - the triple to construct me from */ public Topic(TripleQuery query,Triple pTopicTriple) { this(query,pTopicTriple.getSubject().toString()); } // constructor /** * construct a Topic from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Topic(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Topic_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple pluralNameTriple=query.selectSingle(pageid,"pluralName",null); if (pluralNameTriple==null) pluralNameTriple=query.selectSingle(pageid,"Property:Topic_pluralName",null); if (pluralNameTriple!=null) pluralName=pluralNameTriple.getObject().toString(); Triple iconTriple=query.selectSingle(pageid,"icon",null); if (iconTriple==null) iconTriple=query.selectSingle(pageid,"Property:Topic_icon",null); if (iconTriple!=null) icon=iconTriple.getObject().toString(); Triple iconUrlTriple=query.selectSingle(pageid,"iconUrl",null); if (iconUrlTriple==null) iconUrlTriple=query.selectSingle(pageid,"Property:Topic_iconUrl",null); if (iconUrlTriple!=null) iconUrl=iconUrlTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Topic_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple wikiDocumentationTriple=query.selectSingle(pageid,"wikiDocumentation",null); if (wikiDocumentationTriple==null) wikiDocumentationTriple=query.selectSingle(pageid,"Property:Topic_wikiDocumentation",null); if (wikiDocumentationTriple!=null) wikiDocumentation=wikiDocumentationTriple.getObject().toString(); Triple defaultstoremodeTriple=query.selectSingle(pageid,"defaultstoremode",null); if (defaultstoremodeTriple==null) defaultstoremodeTriple=query.selectSingle(pageid,"Property:Topic_defaultstoremode",null); if (defaultstoremodeTriple!=null) defaultstoremode=defaultstoremodeTriple.getObject().toString(); Triple listLimitTriple=query.selectSingle(pageid,"listLimit",null); if (listLimitTriple==null) listLimitTriple=query.selectSingle(pageid,"Property:Topic_listLimit",null); if (listLimitTriple!=null) listLimit=listLimitTriple.getObject().toString(); Triple cargoTriple=query.selectSingle(pageid,"cargo",null); if (cargoTriple==null) cargoTriple=query.selectSingle(pageid,"Property:Topic_cargo",null); if (cargoTriple!=null) cargo=cargoTriple.getObject().toString(); Triple contextTriple=query.selectSingle(pageid,"context",null); if (contextTriple==null) contextTriple=query.selectSingle(pageid,"Property:Topic_context",null); if (contextTriple!=null) context=contextTriple.getObject().toString(); init(query); } // constructor for Topic // >>>{user defined topic code}{Topic}{Topic} // <<<{user defined topic code}{Topic}{Topic} } // class Topic /** * Manager for Topic */ public static class TopicManager extends TopicBase { public String topicName="Topic"; public transient List<Topic> mTopics=new ArrayList<Topic>(); public transient Map<String,Topic> mTopicMap=new LinkedHashMap<String,Topic>(); /** * get my Topics */ public List<Topic> getTopics() { List<Topic> result=this.mTopics; return result; } /** * add a new Topic */ public Topic add(Topic pTopic) { mTopics.add(pTopic); mTopicMap.put(pTopic.getPageid(),pTopic); return pTopic; } /** * add a new Topic from the given triple */ public Topic add(TripleQuery query,Triple pTopicTriple) { Topic lTopic=new Topic(query,pTopicTriple); add(lTopic); return lTopic; } // reinitialize my mTopic map public void reinit() { mTopicMap.clear(); for (Topic lTopic:mTopics) { mTopicMap.put(lTopic.getPageid(),lTopic); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicManager fromJson(String json) { TopicManager result=JSON.parseObject(json, TopicManager.class); result.reinit(); return result; } // default constructor public TopicManager() {} // construct me from the given triple Query query public TopicManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicQuery=query.query(null,"isA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } // then the SMW triplestore lTopicQuery=query.query(null,"Property:IsA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } init(query); } // constructor for Topic Manager // >>>{user defined topicmanager code}{Topic}{Topic} // <<<{user defined topicmanager code}{Topic}{Topic} } // class Topic Manager /** * Action * */ public static class Action extends TopicBase { public String pageid; public String servicetype; public String service; public String inputtype; public String input; public String actionpage; public String output; public String getServicetype() { return servicetype; } public void setServicetype(String pServicetype) { servicetype=pServicetype; } public String getService() { return service; } public void setService(String pService) { service=pService; } public String getInputtype() { return inputtype; } public void setInputtype(String pInputtype) { inputtype=pInputtype; } public String getInput() { return input; } public void setInput(String pInput) { input=pInput; } public String getActionpage() { return actionpage; } public void setActionpage(String pActionpage) { actionpage=pActionpage; } public String getOutput() { return output; } public void setOutput(String pOutput) { output=pOutput; } /** * convert this Action to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Action */ public Action() {} /** * construct a Action from the given Triple * @param query - the TripleQuery to get the triples from * @param pActionTriple - the triple to construct me from */ public Action(TripleQuery query,Triple pActionTriple) { this(query,pActionTriple.getSubject().toString()); } // constructor /** * construct a Action from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Action(TripleQuery query,String pageid) { this.pageid=pageid; Triple servicetypeTriple=query.selectSingle(pageid,"servicetype",null); if (servicetypeTriple==null) servicetypeTriple=query.selectSingle(pageid,"Property:Action_servicetype",null); if (servicetypeTriple!=null) servicetype=servicetypeTriple.getObject().toString(); Triple serviceTriple=query.selectSingle(pageid,"service",null); if (serviceTriple==null) serviceTriple=query.selectSingle(pageid,"Property:Action_service",null); if (serviceTriple!=null) service=serviceTriple.getObject().toString(); Triple inputtypeTriple=query.selectSingle(pageid,"inputtype",null); if (inputtypeTriple==null) inputtypeTriple=query.selectSingle(pageid,"Property:Action_inputtype",null); if (inputtypeTriple!=null) inputtype=inputtypeTriple.getObject().toString(); Triple inputTriple=query.selectSingle(pageid,"input",null); if (inputTriple==null) inputTriple=query.selectSingle(pageid,"Property:Action_input",null); if (inputTriple!=null) input=inputTriple.getObject().toString(); Triple actionpageTriple=query.selectSingle(pageid,"actionpage",null); if (actionpageTriple==null) actionpageTriple=query.selectSingle(pageid,"Property:Action_actionpage",null); if (actionpageTriple!=null) actionpage=actionpageTriple.getObject().toString(); Triple outputTriple=query.selectSingle(pageid,"output",null); if (outputTriple==null) outputTriple=query.selectSingle(pageid,"Property:Action_output",null); if (outputTriple!=null) output=outputTriple.getObject().toString(); init(query); } // constructor for Action // >>>{user defined topic code}{Action}{Action} // <<<{user defined topic code}{Action}{Action} } // class Action /** * Manager for Action */ public static class ActionManager extends TopicBase { public String topicName="Action"; public transient List<Action> mActions=new ArrayList<Action>(); public transient Map<String,Action> mActionMap=new LinkedHashMap<String,Action>(); /** * get my Actions */ public List<Action> getActions() { List<Action> result=this.mActions; return result; } /** * add a new Action */ public Action add(Action pAction) { mActions.add(pAction); mActionMap.put(pAction.getPageid(),pAction); return pAction; } /** * add a new Action from the given triple */ public Action add(TripleQuery query,Triple pActionTriple) { Action lAction=new Action(query,pActionTriple); add(lAction); return lAction; } // reinitialize my mAction map public void reinit() { mActionMap.clear(); for (Action lAction:mActions) { mActionMap.put(lAction.getPageid(),lAction); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ActionManager fromJson(String json) { ActionManager result=JSON.parseObject(json, ActionManager.class); result.reinit(); return result; } // default constructor public ActionManager() {} // construct me from the given triple Query query public ActionManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lActionQuery=query.query(null,"isA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } // then the SMW triplestore lActionQuery=query.query(null,"Property:IsA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } init(query); } // constructor for Action Manager // >>>{user defined topicmanager code}{Action}{Action} // <<<{user defined topicmanager code}{Action}{Action} } // class Action Manager /** * TopicLink * A TopicLink links two Concepts */ public static class TopicLink extends TopicBase { public String pageid; public String name; public String source; public String sourceRole; public String sourceMultiple; public String sourceDocumentation; public String target; public String targetRole; public String targetMultiple; public String targetDocumentation; public String masterDetail; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getSource() { return source; } public void setSource(String pSource) { source=pSource; } public String getSourceRole() { return sourceRole; } public void setSourceRole(String pSourceRole) { sourceRole=pSourceRole; } public String getSourceMultiple() { return sourceMultiple; } public void setSourceMultiple(String pSourceMultiple) { sourceMultiple=pSourceMultiple; } public String getSourceDocumentation() { return sourceDocumentation; } public void setSourceDocumentation(String pSourceDocumentation) { sourceDocumentation=pSourceDocumentation; } public String getTarget() { return target; } public void setTarget(String pTarget) { target=pTarget; } public String getTargetRole() { return targetRole; } public void setTargetRole(String pTargetRole) { targetRole=pTargetRole; } public String getTargetMultiple() { return targetMultiple; } public void setTargetMultiple(String pTargetMultiple) { targetMultiple=pTargetMultiple; } public String getTargetDocumentation() { return targetDocumentation; } public void setTargetDocumentation(String pTargetDocumentation) { targetDocumentation=pTargetDocumentation; } public String getMasterDetail() { return masterDetail; } public void setMasterDetail(String pMasterDetail) { masterDetail=pMasterDetail; } /** * convert this TopicLink to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for TopicLink */ public TopicLink() {} /** * construct a TopicLink from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicLinkTriple - the triple to construct me from */ public TopicLink(TripleQuery query,Triple pTopicLinkTriple) { this(query,pTopicLinkTriple.getSubject().toString()); } // constructor /** * construct a TopicLink from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public TopicLink(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:TopicLink_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple sourceTriple=query.selectSingle(pageid,"source",null); if (sourceTriple==null) sourceTriple=query.selectSingle(pageid,"Property:TopicLink_source",null); if (sourceTriple!=null) source=sourceTriple.getObject().toString(); Triple sourceRoleTriple=query.selectSingle(pageid,"sourceRole",null); if (sourceRoleTriple==null) sourceRoleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceRole",null); if (sourceRoleTriple!=null) sourceRole=sourceRoleTriple.getObject().toString(); Triple sourceMultipleTriple=query.selectSingle(pageid,"sourceMultiple",null); if (sourceMultipleTriple==null) sourceMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceMultiple",null); if (sourceMultipleTriple!=null) sourceMultiple=sourceMultipleTriple.getObject().toString(); Triple sourceDocumentationTriple=query.selectSingle(pageid,"sourceDocumentation",null); if (sourceDocumentationTriple==null) sourceDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_sourceDocumentation",null); if (sourceDocumentationTriple!=null) sourceDocumentation=sourceDocumentationTriple.getObject().toString(); Triple targetTriple=query.selectSingle(pageid,"target",null); if (targetTriple==null) targetTriple=query.selectSingle(pageid,"Property:TopicLink_target",null); if (targetTriple!=null) target=targetTriple.getObject().toString(); Triple targetRoleTriple=query.selectSingle(pageid,"targetRole",null); if (targetRoleTriple==null) targetRoleTriple=query.selectSingle(pageid,"Property:TopicLink_targetRole",null); if (targetRoleTriple!=null) targetRole=targetRoleTriple.getObject().toString(); Triple targetMultipleTriple=query.selectSingle(pageid,"targetMultiple",null); if (targetMultipleTriple==null) targetMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_targetMultiple",null); if (targetMultipleTriple!=null) targetMultiple=targetMultipleTriple.getObject().toString(); Triple targetDocumentationTriple=query.selectSingle(pageid,"targetDocumentation",null); if (targetDocumentationTriple==null) targetDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_targetDocumentation",null); if (targetDocumentationTriple!=null) targetDocumentation=targetDocumentationTriple.getObject().toString(); Triple masterDetailTriple=query.selectSingle(pageid,"masterDetail",null); if (masterDetailTriple==null) masterDetailTriple=query.selectSingle(pageid,"Property:TopicLink_masterDetail",null); if (masterDetailTriple!=null) masterDetail=masterDetailTriple.getObject().toString(); init(query); } // constructor for TopicLink // >>>{user defined topic code}{TopicLink}{TopicLink} // <<<{user defined topic code}{TopicLink}{TopicLink} } // class TopicLink /** * Manager for TopicLink */ public static class TopicLinkManager extends TopicBase { public String topicName="TopicLink"; public transient List<TopicLink> mTopicLinks=new ArrayList<TopicLink>(); public transient Map<String,TopicLink> mTopicLinkMap=new LinkedHashMap<String,TopicLink>(); /** * get my TopicLinks */ public List<TopicLink> getTopicLinks() { List<TopicLink> result=this.mTopicLinks; return result; } /** * add a new TopicLink */ public TopicLink add(TopicLink pTopicLink) { mTopicLinks.add(pTopicLink); mTopicLinkMap.put(pTopicLink.getPageid(),pTopicLink); return pTopicLink; } /** * add a new TopicLink from the given triple */ public TopicLink add(TripleQuery query,Triple pTopicLinkTriple) { TopicLink lTopicLink=new TopicLink(query,pTopicLinkTriple); add(lTopicLink); return lTopicLink; } // reinitialize my mTopicLink map public void reinit() { mTopicLinkMap.clear(); for (TopicLink lTopicLink:mTopicLinks) { mTopicLinkMap.put(lTopicLink.getPageid(),lTopicLink); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicLinkManager fromJson(String json) { TopicLinkManager result=JSON.parseObject(json, TopicLinkManager.class); result.reinit(); return result; } // default constructor public TopicLinkManager() {} // construct me from the given triple Query query public TopicLinkManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicLinkQuery=query.query(null,"isA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } // then the SMW triplestore lTopicLinkQuery=query.query(null,"Property:IsA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } init(query); } // constructor for TopicLink Manager // >>>{user defined topicmanager code}{TopicLink}{TopicLink} // <<<{user defined topicmanager code}{TopicLink}{TopicLink} } // class TopicLink Manager } 56dda3bf593001f149819a26db4e5fe44961cba8 Concept:Context/Properties 108 112 153 2015-11-06T06:45:37Z Wf 1 created by WikiTask 2015-11-06T06:45:36Z wikitext text/x-wiki == properties of Context == === [[Property:Context name]] === <pre> {{Property |name=name |documentation=Name of the context |type=Special:Types/Text |label=name |primaryKey=true |mandatory=true |uploadable=false |size=80 |index=1 |sortPos=1 |defaultValue= |inputType= |allowedValues= |topic=Concept:Context |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> dd616695a0987e5bb2508d68f63f7df176bc2b8b Concept:Context 108 35 154 73 2015-11-06T06:45:41Z Wf 1 created by WikiTask 2015-11-06T06:45:38Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=Context |pluralName=Contexts |icon=File:Registry.png |iconUrl=/images/d/d2/Registry.png |documentation=A Context groups some topics like a Namespace/Package |wikiDocumentation=A Context groups some topics like a Namespace/Package |defaultstoremode=property |cargo= |context=MetaModel |storemode=property }} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Topic/{{FULLPAGENAME}}|title=edit Context}}<br> {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === A Context groups some topics like a Namespace/Package === uml === <uml> title Context note as ContextDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as ContextNote A Context groups some topics like a Namespace/Package end note class Context { Text name } ContextNote .. Context Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Context name::+]] |Contexts see also * [[List of Contexts]] * [[Help:Context]] * [[Concept:Context]] * [[:Category:Context]] * [[:Template:Context]] * [[:Form:Context]] topic links: * [[:Category:Topic]] }} [[Category:Context]] 409e866a8fc9f70c5d652f4e3394bbd3fb86f960 Form:Property 106 113 155 2015-11-06T06:45:44Z Wf 1 created by WikiTask 2015-11-06T06:45:42Z wikitext text/x-wiki <noinclude> This is the {{smartMediaWiki}}-Form for "Property". Create a new Property by entering a new pagename for a Property into the field below. If you enter an existing Property pagename - you will edit the Property with that pagename. {{#forminput:form=Property|values from concept=Property}} </noinclude><includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> <!-- Property --> {{{for template|Property}}} {| class="wikitable" ! colspan='2'| Property |- ! name: <!-- Text name --> | {{{field|name|input type=|property=Property name|size=50|mandatory}}} |- ! label: <!-- Text label --> | {{{field|label|input type=|property=Property label|size=50}}} |- ! type: <!-- Page type --> | {{{field|type|input type=|property=Property type|size=|default=Text}}} |- ! index: <!-- Number index --> | {{{field|index|input type=|property=Property index|size=}}} |- ! sortPos: <!-- Number sortPos --> | {{{field|sortPos|input type=|property=Property sortPos|size=3}}} |- ! primary key: <!-- Boolean primaryKey --> | {{{field|primaryKey|input type=|property=Property primaryKey|size=4}}} |- ! mandatory: <!-- Boolean mandatory --> | {{{field|mandatory|input type=|property=Property mandatory|size=4}}} |- ! namespace: <!-- Text namespace --> | {{{field|namespace|input type=|property=Property namespace|size=20}}} |- ! size: <!-- Number size --> | {{{field|size|input type=|property=Property size|size=3}}} |- ! uploadable: <!-- Boolean uploadable --> | {{{field|uploadable|input type=|property=Property uploadable|size=4}}} |- ! default: <!-- Code defaultValue --> | {{{field|defaultValue|input type=|property=Property defaultValue|size=80}}} |- ! inputType: <!-- Text inputType --> | {{{field|inputType|input type=dropdown|property=Property inputType|size=50|values=text, combobox, dropdown, textarea, tree, datetime, datepicker, timepicker, datetimepicker, menuselect,two listboxes, datecheck, regexp, radiobutton, googlemaps}}} |- ! allowedValues: <!-- Text allowedValues --> | {{{field|allowedValues|input type=|property=Property allowedValues|size=50}}} |- ! documentation: <!-- Text documentation --> | {{{field|documentation|input type=textarea|property=Property documentation|size=500}}} |- ! values from: <!-- Code values_from --> | {{{field|values_from|input type=textarea|property=Property values_from|size=200}}} |- ! showInGrid: <!-- Boolean showInGrid --> | {{{field|showInGrid|input type=|property=Property showInGrid|size=|default=true}}} |- ! isLink: <!-- Boolean isLink --> | {{{field|isLink|input type=|property=Property isLink|size=}}} |- ! allow nulls?: <!-- Boolean nullable --> | {{{field|nullable|input type=|property=Property nullable|size=|default=false}}} |- ! topic: <!-- Page topic --> | {{{field|topic|input type=dropdown|property=Property topic|size=|values from concept=Topic}}} |- |} {{{field|storemode|default=property|hidden}}} {{{end template}}} <!-- Property --> '''Freitext:''' {{{standard input|free text|rows=10}}} {{{standard input|summary}}} {{{standard input|minor edit}}} {{{standard input|watch}}} {{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}} </includeonly> eb85bd384a1e048138e0d011a4042917efe35b5c Help:Property 12 114 156 2015-11-06T06:45:48Z Wf 1 created by WikiTask 2015-11-06T06:45:45Z wikitext text/x-wiki == Help for Property == {{#ask: [[Topic name::Property]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} === Documentation === see * https://semantic-mediawiki.org/wiki/Help:Properties_and_types * https://semantic-mediawiki.org/wiki/Help:Special_properties * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes === Example Properties === {{#ask: [[Concept:Property]] }} === Properties === {{#ask: [[Concept:Property]][[Property topic::Concept:Property]] | ?Property documentation = documentation | ?Property type = type | ?Property name = name | ?Property label = label | ?Property allowedValues = allowedValues | ?Property mandatory = mandatory | ?Property uploadable = uploadable |format=table }} === uml === <uml> title Property note as PropertyDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as PropertyNote a Property is a Feature/Attribute of a Topic end note class Property { Text name Text label Page type Number index Number sortPos Boolean primaryKey Boolean mandatory Text namespace Number size Boolean uploadable Code defaultValue Text inputType Text allowedValues Text documentation Code values_from Boolean showInGrid Boolean isLink Boolean nullable Page topic } PropertyNote .. Property Property "usedByProperties (*)" -- "smw_type(1)" SMW_Type Topic "topic (1)" -- "properties(*)" Property ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> see also * [[List of Properties]] * [[Help:Property]] * [[Concept:Property]] * [[:Category:Property]] * [[:Template:Property]] * [[:Form:Property]] topic links: * [[:Category:SMW_Type]] [[Category:Property]] 4a89dfca44dc2d92756ee4ea32c5c0ea17342495 Category:Property 14 115 157 2015-11-06T06:45:52Z Wf 1 created by WikiTask 2015-11-06T06:45:50Z wikitext text/x-wiki __NOTOC__ {{#ask: [[Topic name::Property]] | ?Topic wikiDocumentation= | mainlabel=-}} Properties may be added and edited with the form [[has default form::Property]] * [[List of Properties]] <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> Property description <div class="mw-collapsible-content"> === uml === <uml> title Property note as PropertyDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as PropertyNote a Property is a Feature/Attribute of a Topic end note class Property { Text name Text label Page type Number index Number sortPos Boolean primaryKey Boolean mandatory Text namespace Number size Boolean uploadable Code defaultValue Text inputType Text allowedValues Text documentation Code values_from Boolean showInGrid Boolean isLink Boolean nullable Page topic } PropertyNote .. Property Property "usedByProperties (*)" -- "smw_type(1)" SMW_Type Topic "topic (1)" -- "properties(*)" Property ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> * [[Help:Property]] * [[Concept:Property]] * [[:Template:Property]] * [[:Form:Property]] === Properties === * [[Property:Property name]] * [[Property:Property label]] * [[Property:Property type]] * [[Property:Property index]] * [[Property:Property sortPos]] * [[Property:Property primaryKey]] * [[Property:Property mandatory]] * [[Property:Property namespace]] * [[Property:Property size]] * [[Property:Property uploadable]] * [[Property:Property defaultValue]] * [[Property:Property inputType]] * [[Property:Property allowedValues]] * [[Property:Property documentation]] * [[Property:Property values_from]] * [[Property:Property showInGrid]] * [[Property:Property isLink]] * [[Property:Property nullable]] * [[Property:Property topic]] </div> </div> 02ba847b2af82c27a2a413c31e346daa312dff91 Help:SMW Type 12 116 158 2015-11-06T06:45:57Z Wf 1 created by WikiTask 2015-11-06T06:45:54Z wikitext text/x-wiki == Help for SMW_Type == {{#ask: [[Topic name::SMW_Type]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} === Documentation === see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes === Example SMW_Types === {{#ask: [[Concept:SMW_Type]] }} === Properties === {{#ask: [[Concept:Property]][[Property topic::Concept:SMW_Type]] | ?Property documentation = documentation | ?Property type = type | ?Property name = name | ?Property label = label | ?Property allowedValues = allowedValues | ?Property mandatory = mandatory | ?Property uploadable = uploadable |format=table }} === uml === <uml> title SMW_Type note as SMW_TypeDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as SMW_TypeNote an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes end note class SMW_Type { Text type Text documentation URL helppage Page typepage Text javaType Page usedByProperties } SMW_TypeNote .. SMW_Type Property "usedByProperties (*)" -- "smw_type(1)" SMW_Type ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> see also * [[List of SMW_Types]] * [[Help:SMW_Type]] * [[Concept:SMW_Type]] * [[:Category:SMW_Type]] * [[:Template:SMW_Type]] * [[:Form:SMW_Type]] topic links: [[Category:SMW_Type]] 1ad37904f6b63cd70959e630000e2fade7e570a0 List of Properties 0 117 159 2015-11-06T06:45:59Z Wf 1 created by WikiTask 2015-11-06T06:45:58Z wikitext text/x-wiki __NOCACHE__ {{#ask: [[Topic name::Property]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} == Properties == {{#ask: [[Concept:Property]] | ?Property name = name | ?Property label = label | ?Property type = type | ?Property index = index | ?Property sortPos = sortPos | ?Property primaryKey = primaryKey | ?Property mandatory = mandatory | ?Property namespace = namespace | ?Property size = size | ?Property uploadable = uploadable | ?Property defaultValue = defaultValue | ?Property inputType = inputType | ?Property allowedValues = allowedValues | ?Property documentation = documentation | ?Property values_from = values_from | ?Property showInGrid = showInGrid | ?Property isLink = isLink | ?Property nullable = nullable | ?Property topic = topic }} {{#forminput:form=Property|button text=add Property}} <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> === SiDIF === <div class="mw-collapsible-content"> {{#ask: [[Concept:Property]] | ?#=pageid | ?Property name = name | ?Property label = label | ?Property type = type | ?Property index = index | ?Property sortPos = sortPos | ?Property primaryKey = primaryKey | ?Property mandatory = mandatory | ?Property namespace = namespace | ?Property size = size | ?Property uploadable = uploadable | ?Property defaultValue = defaultValue | ?Property inputType = inputType | ?Property allowedValues = allowedValues | ?Property documentation = documentation | ?Property values_from = values_from | ?Property showInGrid = showInGrid | ?Property isLink = isLink | ?Property nullable = nullable | ?Property topic = topic | mainlabel=- | format=template | named args=yes | template=Property | userparam=sidif | limit=300 }} </div> </div> [[:Category:Property]] 3dd7e732f8b5eb88def480c75d9d1ad4774bacb1 Category:SMW Type 14 118 160 2015-11-06T06:46:04Z Wf 1 created by WikiTask 2015-11-06T06:46:01Z wikitext text/x-wiki __NOTOC__ {{#ask: [[Topic name::SMW_Type]] | ?Topic wikiDocumentation= | mainlabel=-}} SMW_Types may be added and edited with the form [[has default form::SMW_Type]] * [[List of SMW_Types]] <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> SMW_Type description <div class="mw-collapsible-content"> === uml === <uml> title SMW_Type note as SMW_TypeDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as SMW_TypeNote an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes end note class SMW_Type { Text type Text documentation URL helppage Page typepage Text javaType Page usedByProperties } SMW_TypeNote .. SMW_Type Property "usedByProperties (*)" -- "smw_type(1)" SMW_Type ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> * [[Help:SMW_Type]] * [[Concept:SMW_Type]] * [[:Template:SMW_Type]] * [[:Form:SMW_Type]] === Properties === * [[Property:SMW_Type type]] * [[Property:SMW_Type documentation]] * [[Property:SMW_Type helppage]] * [[Property:SMW_Type typepage]] * [[Property:SMW_Type javaType]] * [[Property:SMW_Type usedByProperties]] </div> </div> 545f19a33853d7dcb2697157f62d4f9c246e9d1c Concept:SMW Type 108 39 161 77 2015-11-06T06:46:08Z Wf 1 created by WikiTask 2015-11-06T06:46:05Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=SMW_Type |pluralName=SMW_Types |icon=File:Component.png |iconUrl=/images/4/40/Component.png |documentation=an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |wikiDocumentation=see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |defaultstoremode=subobject |cargo= |context=MetaModel |storemode=property }} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Topic/{{FULLPAGENAME}}|title=edit SMW_Type}}<br> {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes === uml === <uml> title SMW_Type note as SMW_TypeDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as SMW_TypeNote an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes end note class SMW_Type { Text type Text documentation URL helppage Page typepage Text javaType Page usedByProperties } SMW_TypeNote .. SMW_Type Property "usedByProperties (*)" -- "smw_type(1)" SMW_Type ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[SMW_Type type::+]] |SMW_Types see also * [[List of SMW_Types]] * [[Help:SMW_Type]] * [[Concept:SMW_Type]] * [[:Category:SMW_Type]] * [[:Template:SMW_Type]] * [[:Form:SMW_Type]] topic links: }} [[Category:SMW_Type]] dce48b46e842ef19eb6ef7e73a23b606f5110f15 List of Topics 0 119 162 2015-11-06T06:46:11Z Wf 1 created by WikiTask 2015-11-06T06:46:09Z wikitext text/x-wiki __NOCACHE__ {{#ask: [[Topic name::Topic]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} == Topics == {{#ask: [[Concept:Topic]] | ?Topic name = name | ?Topic pluralName = pluralName | ?Topic icon = icon | ?Topic iconUrl = iconUrl | ?Topic documentation = documentation | ?Topic wikiDocumentation = wikiDocumentation | ?Topic defaultstoremode = defaultstoremode | ?Topic listLimit = listLimit | ?Topic cargo = cargo | ?Topic context = context }} {{#forminput:form=Topic|button text=add Topic}} <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> === SiDIF === <div class="mw-collapsible-content"> {{#ask: [[Concept:Topic]] | ?#=pageid | ?Topic name = name | ?Topic pluralName = pluralName | ?Topic icon = icon | ?Topic iconUrl = iconUrl | ?Topic documentation = documentation | ?Topic wikiDocumentation = wikiDocumentation | ?Topic defaultstoremode = defaultstoremode | ?Topic listLimit = listLimit | ?Topic cargo = cargo | ?Topic context = context | mainlabel=- | format=template | named args=yes | template=Topic | userparam=sidif | limit=300 }} </div> </div> [[:Category:Topic]] 67b394eddff20cbb2b32610461728c6ec99bfe02 Category:Topic 14 120 163 2015-11-06T06:46:15Z Wf 1 created by WikiTask 2015-11-06T06:46:12Z wikitext text/x-wiki __NOTOC__ {{#ask: [[Topic name::Topic]] | ?Topic wikiDocumentation= | mainlabel=-}} Topics may be added and edited with the form [[has default form::Topic]] * [[List of Topics]] <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> Topic description <div class="mw-collapsible-content"> === uml === <uml> title Topic note as TopicDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as TopicNote A Topic is a Concept/Class/Thing/Entity end note class Topic { Text name Text pluralName Page icon URL iconUrl Text documentation Text wikiDocumentation Text defaultstoremode Number listLimit Boolean cargo Page context } TopicNote .. Topic Topic "topic (1)" -- "properties(*)" Property Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> * [[Help:Topic]] * [[Concept:Topic]] * [[:Template:Topic]] * [[:Form:Topic]] === Properties === * [[Property:Topic name]] * [[Property:Topic pluralName]] * [[Property:Topic icon]] * [[Property:Topic iconUrl]] * [[Property:Topic documentation]] * [[Property:Topic wikiDocumentation]] * [[Property:Topic defaultstoremode]] * [[Property:Topic listLimit]] * [[Property:Topic cargo]] * [[Property:Topic context]] </div> </div> 5963844e04c998b021639fecbf64a0bc549e771e Form:SMW Type 106 121 164 2015-11-06T06:46:17Z Wf 1 created by WikiTask 2015-11-06T06:46:16Z wikitext text/x-wiki <noinclude> This is the {{smartMediaWiki}}-Form for "SMW_Type". Create a new SMW_Type by entering a new pagename for a SMW_Type into the field below. If you enter an existing SMW_Type pagename - you will edit the SMW_Type with that pagename. {{#forminput:form=SMW_Type|values from concept=SMW_Type}} </noinclude><includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> <!-- SMW_Type --> {{{for template|SMW_Type|multiple}}} {| class="wikitable" ! colspan='2'| SMW_Type |- ! type: <!-- Text type --> | {{{field|type|input type=|property=SMW_Type type|size=50|mandatory}}} |- ! type: <!-- Text documentation --> | {{{field|documentation|input type=|property=SMW_Type documentation|size=50}}} |- ! type: <!-- URL helppage --> | {{{field|helppage|input type=|property=SMW_Type helppage|size=50}}} |- ! typepage: <!-- Page typepage --> | {{{field|typepage|input type=|property=SMW_Type typepage|size=50}}} |- ! java Type: <!-- Text javaType --> | {{{field|javaType|input type=|property=SMW_Type javaType|size=50}}} |- ! usedByProperties: <!-- Page usedByProperties --> | {{{field|usedByProperties|input type=dropdown|property=SMW_Type usedByProperties|size=|values from concept=Property}}} |- |} {{{field|storemode|default=subobject|hidden}}} {{{end template}}} <!-- SMW_Type --> '''Freitext:''' {{{standard input|free text|rows=10}}} {{{standard input|summary}}} {{{standard input|minor edit}}} {{{standard input|watch}}} {{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}} </includeonly> 81e8d38f73abd84318235535c7ddbbd7bc06ce15 List of SMW Types 0 122 165 2015-11-06T06:46:20Z Wf 1 created by WikiTask 2015-11-06T06:46:19Z wikitext text/x-wiki __NOCACHE__ {{#ask: [[Topic name::SMW_Type]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} == SMW_Types == {{#ask: [[Concept:SMW_Type]] | ?SMW_Type type = type | ?SMW_Type documentation = documentation | ?SMW_Type helppage = helppage | ?SMW_Type typepage = typepage | ?SMW_Type javaType = javaType | ?SMW_Type usedByProperties = usedByProperties }} {{#forminput:form=SMW_Type|button text=add SMW_Type}} <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> === SiDIF === <div class="mw-collapsible-content"> {{#ask: [[Concept:SMW_Type]] | ?#=pageid | ?SMW_Type type = type | ?SMW_Type documentation = documentation | ?SMW_Type helppage = helppage | ?SMW_Type typepage = typepage | ?SMW_Type javaType = javaType | ?SMW_Type usedByProperties = usedByProperties | mainlabel=- | format=template | named args=yes | template=SMW_Type | userparam=sidif | limit=300 }} </div> </div> [[:Category:SMW_Type]] 6697d30cd9229dca05505ff23c2982e5f491367c Form:Topic 106 123 166 2015-11-06T06:46:22Z Wf 1 created by WikiTask 2015-11-06T06:46:21Z wikitext text/x-wiki <noinclude> This is the {{smartMediaWiki}}-Form for "Topic". Create a new Topic by entering a new pagename for a Topic into the field below. If you enter an existing Topic pagename - you will edit the Topic with that pagename. {{#forminput:form=Topic|values from concept=Topic}} </noinclude><includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> <!-- Topic --> {{{for template|Topic}}} {| class="wikitable" ! colspan='2'| Topic |- ! name: <!-- Text name --> | {{{field|name|input type=|property=Topic name|size=80|mandatory}}} |- ! pluralName: <!-- Text pluralName --> | {{{field|pluralName|input type=|property=Topic pluralName|size=50}}} |- ! icon: <!-- Page icon --> | {{{field|icon|input type=|property=Topic icon|size=55|uploadable}}} |- ! icon Url: <!-- URL iconUrl --> | {{{field|iconUrl|input type=text|property=Topic iconUrl|size=80}}} |- ! documentation: <!-- Text documentation --> | {{{field|documentation|input type=|property=Topic documentation|size=50}}} |- ! wikiDocumentation: <!-- Text wikiDocumentation --> | {{{field|wikiDocumentation|input type=|property=Topic wikiDocumentation|size=50}}} |- ! default storemode: <!-- Text defaultstoremode --> | {{{field|defaultstoremode|input type=radiobutton|property=Topic defaultstoremode|size=50|values=none,property,subobject}}} |- ! list Limit: <!-- Number listLimit --> | {{{field|listLimit|input type=|property=Topic listLimit|size=4|default=200}}} |- ! use cargo: <!-- Boolean cargo --> | {{{field|cargo|input type=|property=Topic cargo|size=}}} |- ! context: <!-- Page context --> | {{{field|context|input type=dropdown|property=Topic context|size=|values from concept=Context}}} |- |} {{{field|storemode|default=property|hidden}}} {{{end template}}} <!-- Topic --> '''Freitext:''' {{{standard input|free text|rows=10}}} {{{standard input|summary}}} {{{standard input|minor edit}}} {{{standard input|watch}}} {{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}} </includeonly> a3282c812fd7685f7bc76ca127e96797dbd2dacc Concept:SMW Type/Properties 108 124 167 2015-11-06T06:46:25Z Wf 1 created by WikiTask 2015-11-06T06:46:24Z wikitext text/x-wiki == properties of SMW_Type == === [[Property:SMW_Type type]] === <pre> {{Property |name=type |documentation=The Semantic MediaWiki type without the prefix e.g. Text, Number, Boolean |type=Special:Types/Text |label=type |primaryKey=true |mandatory=true |uploadable=false |size=50 |index=1 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:SMW_Type documentation]] === <pre> {{Property |name=documentation |documentation=The documentation of this Semantic Media Wiki type |type=Special:Types/Text |label=type |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=2 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:SMW_Type helppage]] === <pre> {{Property |name=helppage |documentation=The url of the 'official' documentation page of this type |type=Special:Types/URL |label=type |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=3 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:SMW_Type |storemode=property }} [[Has type::URL]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:SMW_Type typepage]] === <pre> {{Property |name=typepage |documentation=The Semantic Media Wiki Special page for this specific type e.g. Special:Types/Text, Special:Types/Boolean, Special:Types/Date, Special:Types/Number, Special:Types/Page |type=Special:Types/Page |label=typepage |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=4 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:SMW_Type |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:SMW_Type javaType]] === <pre> {{Property |name=javaType |documentation=Java mapping of this type |type=Special:Types/Text |label=java Type |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=5 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:SMW_Type usedByProperties]] === <pre> {{Property |name=usedByProperties |documentation=the properties having this type |type=Special:Types/Page |label=usedByProperties |primaryKey= |mandatory= |uploadable= |size= |index= |sortPos= |defaultValue= |inputType=dropdown |allowedValues= |topic=Concept:SMW_Type |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> 00b4be1ff5b6762a01cc17b01c5dd87cfaf282a5 Concept:Topic/Properties 108 125 168 2015-11-06T06:46:28Z Wf 1 created by WikiTask 2015-11-06T06:46:27Z wikitext text/x-wiki == properties of Topic == === [[Property:Topic name]] === <pre> {{Property |name=name |documentation=The name of the topic |type=Special:Types/Text |label=name |primaryKey=true |mandatory=true |uploadable=false |size=80 |index=1 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Topic pluralName]] === <pre> {{Property |name=pluralName |documentation=The plural of a topic name. E.g. for the topic 'City' the pluralName is 'Cities'. If no pluralName is specified an 's' is appended. E.g. for the topic 'Book' the default pluralName is 'Books' |type=Special:Types/Text |label=pluralName |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=2 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Topic icon]] === <pre> {{Property |name=icon |documentation=an Icon for the topic |type=Special:Types/Page |label=icon |primaryKey=false |mandatory=false |uploadable=true |size=55 |index=3 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Topic |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Topic iconUrl]] === <pre> {{Property |name=iconUrl |documentation=the url of an icon |type=Special:Types/URL |label=icon Url |primaryKey=false |mandatory=false |uploadable=false |size=80 |index=4 |sortPos= |defaultValue= |inputType=text |allowedValues= |topic=Concept:Topic |storemode=property }} [[Has type::URL]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Topic documentation]] === <pre> {{Property |name=documentation |documentation=The plaintext documentation of a Topic. Please do not use markup for this. |type=Special:Types/Text |label=documentation |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=5 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Topic wikiDocumentation]] === <pre> {{Property |name=wikiDocumentation |documentation=Documentation of the Topic using MediaWiki / Semantic Mediawiki markup |type=Special:Types/Text |label=wikiDocumentation |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=6 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Topic defaultstoremode]] === <pre> {{Property |name=defaultstoremode |documentation=The default storemode of the topic |type=Special:Types/Text |label=default storemode |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=7 |sortPos= |defaultValue= |inputType=radiobutton |allowedValues=none,property,subobject |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Topic listLimit]] === <pre> {{Property |name=listLimit |documentation=What is the default #ask list limit for this Topic? |type=Special:Types/Number |label=list Limit |primaryKey=false |mandatory=false |uploadable=false |size=4 |index=8 |sortPos= |defaultValue=200 |inputType= |allowedValues= |topic=Concept:Topic |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Topic cargo]] === <pre> {{Property |name=cargo |documentation=Should the Topic be stored using the [https://www.mediawiki.org/wiki/Extension:Cargo Cargo Extension?] |type=Special:Types/Boolean |label=use cargo |primaryKey=false |mandatory=false |uploadable=false |size= |index=9 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Topic |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Topic context]] === <pre> {{Property |name=context |documentation= |type=Special:Types/Page |label=context |primaryKey= |mandatory= |uploadable= |size= |index= |sortPos= |defaultValue= |inputType=dropdown |allowedValues= |topic=Concept:Topic |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> 061e0babdae7a08c14ec73e035f14f127840a1b0 Concept:Topic/Java 108 126 169 2015-11-06T06:46:32Z Wf 1 created by WikiTask 2015-11-06T06:46:30Z wikitext text/x-wiki === java code === <source lang='java' id='javacode'>@// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @def static { /** * Base class */ static abstract class TopicBase { /** * initialize */ public void init(TripleQuery query) { } } // TopicBase /** * Context * A Context groups some topics like a Namespace/Package */ public static class Context extends TopicBase { public String pageid; public String name; public String getName() { return name; } public void setName(String pName) { name=pName; } /** * convert this Context to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Context */ public Context() {} /** * construct a Context from the given Triple * @param query - the TripleQuery to get the triples from * @param pContextTriple - the triple to construct me from */ public Context(TripleQuery query,Triple pContextTriple) { this(query,pContextTriple.getSubject().toString()); } // constructor /** * construct a Context from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Context(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Context_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); init(query); } // constructor for Context // >>>{user defined topic code}{Context}{Context} // <<<{user defined topic code}{Context}{Context} } // class Context /** * Manager for Context */ public static class ContextManager extends TopicBase { public String topicName="Context"; public transient List<Context> mContexts=new ArrayList<Context>(); public transient Map<String,Context> mContextMap=new LinkedHashMap<String,Context>(); /** * get my Contexts */ public List<Context> getContexts() { List<Context> result=this.mContexts; return result; } /** * add a new Context */ public Context add(Context pContext) { mContexts.add(pContext); mContextMap.put(pContext.getPageid(),pContext); return pContext; } /** * add a new Context from the given triple */ public Context add(TripleQuery query,Triple pContextTriple) { Context lContext=new Context(query,pContextTriple); add(lContext); return lContext; } // reinitialize my mContext map public void reinit() { mContextMap.clear(); for (Context lContext:mContexts) { mContextMap.put(lContext.getPageid(),lContext); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ContextManager fromJson(String json) { ContextManager result=JSON.parseObject(json, ContextManager.class); result.reinit(); return result; } // default constructor public ContextManager() {} // construct me from the given triple Query query public ContextManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lContextQuery=query.query(null,"isA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } // then the SMW triplestore lContextQuery=query.query(null,"Property:IsA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } init(query); } // constructor for Context Manager // >>>{user defined topicmanager code}{Context}{Context} // <<<{user defined topicmanager code}{Context}{Context} } // class Context Manager /** * Property * a Property is a Feature/Attribute of a Topic */ public static class Property extends TopicBase { public String pageid; public String name; public String label; public String type; public String index; public String sortPos; public String primaryKey; public String mandatory; public String namespace; public String size; public String uploadable; public String defaultValue; public String inputType; public String allowedValues; public String documentation; public String values_from; public String showInGrid; public String isLink; public String nullable; public String topic; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getLabel() { return label; } public void setLabel(String pLabel) { label=pLabel; } public String getType() { return type; } public void setType(String pType) { type=pType; } public String getIndex() { return index; } public void setIndex(String pIndex) { index=pIndex; } public String getSortPos() { return sortPos; } public void setSortPos(String pSortPos) { sortPos=pSortPos; } public String getPrimaryKey() { return primaryKey; } public void setPrimaryKey(String pPrimaryKey) { primaryKey=pPrimaryKey; } public String getMandatory() { return mandatory; } public void setMandatory(String pMandatory) { mandatory=pMandatory; } public String getNamespace() { return namespace; } public void setNamespace(String pNamespace) { namespace=pNamespace; } public String getSize() { return size; } public void setSize(String pSize) { size=pSize; } public String getUploadable() { return uploadable; } public void setUploadable(String pUploadable) { uploadable=pUploadable; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String pDefaultValue) { defaultValue=pDefaultValue; } public String getInputType() { return inputType; } public void setInputType(String pInputType) { inputType=pInputType; } public String getAllowedValues() { return allowedValues; } public void setAllowedValues(String pAllowedValues) { allowedValues=pAllowedValues; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getValues_from() { return values_from; } public void setValues_from(String pValues_from) { values_from=pValues_from; } public String getShowInGrid() { return showInGrid; } public void setShowInGrid(String pShowInGrid) { showInGrid=pShowInGrid; } public String getIsLink() { return isLink; } public void setIsLink(String pIsLink) { isLink=pIsLink; } public String getNullable() { return nullable; } public void setNullable(String pNullable) { nullable=pNullable; } public String getTopic() { return topic; } public void setTopic(String pTopic) { topic=pTopic; } /** * convert this Property to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Property */ public Property() {} /** * construct a Property from the given Triple * @param query - the TripleQuery to get the triples from * @param pPropertyTriple - the triple to construct me from */ public Property(TripleQuery query,Triple pPropertyTriple) { this(query,pPropertyTriple.getSubject().toString()); } // constructor /** * construct a Property from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Property(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Property_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple labelTriple=query.selectSingle(pageid,"label",null); if (labelTriple==null) labelTriple=query.selectSingle(pageid,"Property:Property_label",null); if (labelTriple!=null) label=labelTriple.getObject().toString(); Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:Property_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple indexTriple=query.selectSingle(pageid,"index",null); if (indexTriple==null) indexTriple=query.selectSingle(pageid,"Property:Property_index",null); if (indexTriple!=null) index=indexTriple.getObject().toString(); Triple sortPosTriple=query.selectSingle(pageid,"sortPos",null); if (sortPosTriple==null) sortPosTriple=query.selectSingle(pageid,"Property:Property_sortPos",null); if (sortPosTriple!=null) sortPos=sortPosTriple.getObject().toString(); Triple primaryKeyTriple=query.selectSingle(pageid,"primaryKey",null); if (primaryKeyTriple==null) primaryKeyTriple=query.selectSingle(pageid,"Property:Property_primaryKey",null); if (primaryKeyTriple!=null) primaryKey=primaryKeyTriple.getObject().toString(); Triple mandatoryTriple=query.selectSingle(pageid,"mandatory",null); if (mandatoryTriple==null) mandatoryTriple=query.selectSingle(pageid,"Property:Property_mandatory",null); if (mandatoryTriple!=null) mandatory=mandatoryTriple.getObject().toString(); Triple namespaceTriple=query.selectSingle(pageid,"namespace",null); if (namespaceTriple==null) namespaceTriple=query.selectSingle(pageid,"Property:Property_namespace",null); if (namespaceTriple!=null) namespace=namespaceTriple.getObject().toString(); Triple sizeTriple=query.selectSingle(pageid,"size",null); if (sizeTriple==null) sizeTriple=query.selectSingle(pageid,"Property:Property_size",null); if (sizeTriple!=null) size=sizeTriple.getObject().toString(); Triple uploadableTriple=query.selectSingle(pageid,"uploadable",null); if (uploadableTriple==null) uploadableTriple=query.selectSingle(pageid,"Property:Property_uploadable",null); if (uploadableTriple!=null) uploadable=uploadableTriple.getObject().toString(); Triple defaultValueTriple=query.selectSingle(pageid,"defaultValue",null); if (defaultValueTriple==null) defaultValueTriple=query.selectSingle(pageid,"Property:Property_defaultValue",null); if (defaultValueTriple!=null) defaultValue=defaultValueTriple.getObject().toString(); Triple inputTypeTriple=query.selectSingle(pageid,"inputType",null); if (inputTypeTriple==null) inputTypeTriple=query.selectSingle(pageid,"Property:Property_inputType",null); if (inputTypeTriple!=null) inputType=inputTypeTriple.getObject().toString(); Triple allowedValuesTriple=query.selectSingle(pageid,"allowedValues",null); if (allowedValuesTriple==null) allowedValuesTriple=query.selectSingle(pageid,"Property:Property_allowedValues",null); if (allowedValuesTriple!=null) allowedValues=allowedValuesTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Property_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple values_fromTriple=query.selectSingle(pageid,"values_from",null); if (values_fromTriple==null) values_fromTriple=query.selectSingle(pageid,"Property:Property_values_from",null); if (values_fromTriple!=null) values_from=values_fromTriple.getObject().toString(); Triple showInGridTriple=query.selectSingle(pageid,"showInGrid",null); if (showInGridTriple==null) showInGridTriple=query.selectSingle(pageid,"Property:Property_showInGrid",null); if (showInGridTriple!=null) showInGrid=showInGridTriple.getObject().toString(); Triple isLinkTriple=query.selectSingle(pageid,"isLink",null); if (isLinkTriple==null) isLinkTriple=query.selectSingle(pageid,"Property:Property_isLink",null); if (isLinkTriple!=null) isLink=isLinkTriple.getObject().toString(); Triple nullableTriple=query.selectSingle(pageid,"nullable",null); if (nullableTriple==null) nullableTriple=query.selectSingle(pageid,"Property:Property_nullable",null); if (nullableTriple!=null) nullable=nullableTriple.getObject().toString(); Triple topicTriple=query.selectSingle(pageid,"topic",null); if (topicTriple==null) topicTriple=query.selectSingle(pageid,"Property:Property_topic",null); if (topicTriple!=null) topic=topicTriple.getObject().toString(); init(query); } // constructor for Property // >>>{user defined topic code}{Property}{Property} // <<<{user defined topic code}{Property}{Property} } // class Property /** * Manager for Property */ public static class PropertyManager extends TopicBase { public String topicName="Property"; public transient List<Property> mPropertys=new ArrayList<Property>(); public transient Map<String,Property> mPropertyMap=new LinkedHashMap<String,Property>(); /** * get my Properties */ public List<Property> getProperties() { List<Property> result=this.mPropertys; return result; } /** * add a new Property */ public Property add(Property pProperty) { mPropertys.add(pProperty); mPropertyMap.put(pProperty.getPageid(),pProperty); return pProperty; } /** * add a new Property from the given triple */ public Property add(TripleQuery query,Triple pPropertyTriple) { Property lProperty=new Property(query,pPropertyTriple); add(lProperty); return lProperty; } // reinitialize my mProperty map public void reinit() { mPropertyMap.clear(); for (Property lProperty:mPropertys) { mPropertyMap.put(lProperty.getPageid(),lProperty); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static PropertyManager fromJson(String json) { PropertyManager result=JSON.parseObject(json, PropertyManager.class); result.reinit(); return result; } // default constructor public PropertyManager() {} // construct me from the given triple Query query public PropertyManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lPropertyQuery=query.query(null,"isA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } // then the SMW triplestore lPropertyQuery=query.query(null,"Property:IsA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } init(query); } // constructor for Property Manager // >>>{user defined topicmanager code}{Property}{Property} // <<<{user defined topicmanager code}{Property}{Property} } // class Property Manager /** * SMW_Type * an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes */ public static class SMW_Type extends TopicBase { public String pageid; public String type; public String documentation; public String helppage; public String typepage; public String javaType; public String usedByProperties; public String getType() { return type; } public void setType(String pType) { type=pType; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getHelppage() { return helppage; } public void setHelppage(String pHelppage) { helppage=pHelppage; } public String getTypepage() { return typepage; } public void setTypepage(String pTypepage) { typepage=pTypepage; } public String getJavaType() { return javaType; } public void setJavaType(String pJavaType) { javaType=pJavaType; } public String getUsedByProperties() { return usedByProperties; } public void setUsedByProperties(String pUsedByProperties) { usedByProperties=pUsedByProperties; } /** * convert this SMW_Type to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for SMW_Type */ public SMW_Type() {} /** * construct a SMW_Type from the given Triple * @param query - the TripleQuery to get the triples from * @param pSMW_TypeTriple - the triple to construct me from */ public SMW_Type(TripleQuery query,Triple pSMW_TypeTriple) { this(query,pSMW_TypeTriple.getSubject().toString()); } // constructor /** * construct a SMW_Type from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public SMW_Type(TripleQuery query,String pageid) { this.pageid=pageid; Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:SMW_Type_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:SMW_Type_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple helppageTriple=query.selectSingle(pageid,"helppage",null); if (helppageTriple==null) helppageTriple=query.selectSingle(pageid,"Property:SMW_Type_helppage",null); if (helppageTriple!=null) helppage=helppageTriple.getObject().toString(); Triple typepageTriple=query.selectSingle(pageid,"typepage",null); if (typepageTriple==null) typepageTriple=query.selectSingle(pageid,"Property:SMW_Type_typepage",null); if (typepageTriple!=null) typepage=typepageTriple.getObject().toString(); Triple javaTypeTriple=query.selectSingle(pageid,"javaType",null); if (javaTypeTriple==null) javaTypeTriple=query.selectSingle(pageid,"Property:SMW_Type_javaType",null); if (javaTypeTriple!=null) javaType=javaTypeTriple.getObject().toString(); Triple usedByPropertiesTriple=query.selectSingle(pageid,"usedByProperties",null); if (usedByPropertiesTriple==null) usedByPropertiesTriple=query.selectSingle(pageid,"Property:SMW_Type_usedByProperties",null); if (usedByPropertiesTriple!=null) usedByProperties=usedByPropertiesTriple.getObject().toString(); init(query); } // constructor for SMW_Type // >>>{user defined topic code}{SMW_Type}{SMW_Type} // <<<{user defined topic code}{SMW_Type}{SMW_Type} } // class SMW_Type /** * Manager for SMW_Type */ public static class SMW_TypeManager extends TopicBase { public String topicName="SMW_Type"; public transient List<SMW_Type> mSMW_Types=new ArrayList<SMW_Type>(); public transient Map<String,SMW_Type> mSMW_TypeMap=new LinkedHashMap<String,SMW_Type>(); /** * get my SMW_Types */ public List<SMW_Type> getSMW_Types() { List<SMW_Type> result=this.mSMW_Types; return result; } /** * add a new SMW_Type */ public SMW_Type add(SMW_Type pSMW_Type) { mSMW_Types.add(pSMW_Type); mSMW_TypeMap.put(pSMW_Type.getPageid(),pSMW_Type); return pSMW_Type; } /** * add a new SMW_Type from the given triple */ public SMW_Type add(TripleQuery query,Triple pSMW_TypeTriple) { SMW_Type lSMW_Type=new SMW_Type(query,pSMW_TypeTriple); add(lSMW_Type); return lSMW_Type; } // reinitialize my mSMW_Type map public void reinit() { mSMW_TypeMap.clear(); for (SMW_Type lSMW_Type:mSMW_Types) { mSMW_TypeMap.put(lSMW_Type.getPageid(),lSMW_Type); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static SMW_TypeManager fromJson(String json) { SMW_TypeManager result=JSON.parseObject(json, SMW_TypeManager.class); result.reinit(); return result; } // default constructor public SMW_TypeManager() {} // construct me from the given triple Query query public SMW_TypeManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lSMW_TypeQuery=query.query(null,"isA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } // then the SMW triplestore lSMW_TypeQuery=query.query(null,"Property:IsA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } init(query); } // constructor for SMW_Type Manager // >>>{user defined topicmanager code}{SMW_Type}{SMW_Type} // <<<{user defined topicmanager code}{SMW_Type}{SMW_Type} } // class SMW_Type Manager /** * Topic * A Topic is a Concept/Class/Thing/Entity */ public static class Topic extends TopicBase { public String pageid; public String name; public String pluralName; public String icon; public String iconUrl; public String documentation; public String wikiDocumentation; public String defaultstoremode; public String listLimit; public String cargo; public String context; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getPluralName() { return pluralName; } public void setPluralName(String pPluralName) { pluralName=pPluralName; } public String getIcon() { return icon; } public void setIcon(String pIcon) { icon=pIcon; } public String getIconUrl() { return iconUrl; } public void setIconUrl(String pIconUrl) { iconUrl=pIconUrl; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getWikiDocumentation() { return wikiDocumentation; } public void setWikiDocumentation(String pWikiDocumentation) { wikiDocumentation=pWikiDocumentation; } public String getDefaultstoremode() { return defaultstoremode; } public void setDefaultstoremode(String pDefaultstoremode) { defaultstoremode=pDefaultstoremode; } public String getListLimit() { return listLimit; } public void setListLimit(String pListLimit) { listLimit=pListLimit; } public String getCargo() { return cargo; } public void setCargo(String pCargo) { cargo=pCargo; } public String getContext() { return context; } public void setContext(String pContext) { context=pContext; } /** * convert this Topic to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Topic */ public Topic() {} /** * construct a Topic from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicTriple - the triple to construct me from */ public Topic(TripleQuery query,Triple pTopicTriple) { this(query,pTopicTriple.getSubject().toString()); } // constructor /** * construct a Topic from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Topic(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Topic_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple pluralNameTriple=query.selectSingle(pageid,"pluralName",null); if (pluralNameTriple==null) pluralNameTriple=query.selectSingle(pageid,"Property:Topic_pluralName",null); if (pluralNameTriple!=null) pluralName=pluralNameTriple.getObject().toString(); Triple iconTriple=query.selectSingle(pageid,"icon",null); if (iconTriple==null) iconTriple=query.selectSingle(pageid,"Property:Topic_icon",null); if (iconTriple!=null) icon=iconTriple.getObject().toString(); Triple iconUrlTriple=query.selectSingle(pageid,"iconUrl",null); if (iconUrlTriple==null) iconUrlTriple=query.selectSingle(pageid,"Property:Topic_iconUrl",null); if (iconUrlTriple!=null) iconUrl=iconUrlTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Topic_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple wikiDocumentationTriple=query.selectSingle(pageid,"wikiDocumentation",null); if (wikiDocumentationTriple==null) wikiDocumentationTriple=query.selectSingle(pageid,"Property:Topic_wikiDocumentation",null); if (wikiDocumentationTriple!=null) wikiDocumentation=wikiDocumentationTriple.getObject().toString(); Triple defaultstoremodeTriple=query.selectSingle(pageid,"defaultstoremode",null); if (defaultstoremodeTriple==null) defaultstoremodeTriple=query.selectSingle(pageid,"Property:Topic_defaultstoremode",null); if (defaultstoremodeTriple!=null) defaultstoremode=defaultstoremodeTriple.getObject().toString(); Triple listLimitTriple=query.selectSingle(pageid,"listLimit",null); if (listLimitTriple==null) listLimitTriple=query.selectSingle(pageid,"Property:Topic_listLimit",null); if (listLimitTriple!=null) listLimit=listLimitTriple.getObject().toString(); Triple cargoTriple=query.selectSingle(pageid,"cargo",null); if (cargoTriple==null) cargoTriple=query.selectSingle(pageid,"Property:Topic_cargo",null); if (cargoTriple!=null) cargo=cargoTriple.getObject().toString(); Triple contextTriple=query.selectSingle(pageid,"context",null); if (contextTriple==null) contextTriple=query.selectSingle(pageid,"Property:Topic_context",null); if (contextTriple!=null) context=contextTriple.getObject().toString(); init(query); } // constructor for Topic // >>>{user defined topic code}{Topic}{Topic} // <<<{user defined topic code}{Topic}{Topic} } // class Topic /** * Manager for Topic */ public static class TopicManager extends TopicBase { public String topicName="Topic"; public transient List<Topic> mTopics=new ArrayList<Topic>(); public transient Map<String,Topic> mTopicMap=new LinkedHashMap<String,Topic>(); /** * get my Topics */ public List<Topic> getTopics() { List<Topic> result=this.mTopics; return result; } /** * add a new Topic */ public Topic add(Topic pTopic) { mTopics.add(pTopic); mTopicMap.put(pTopic.getPageid(),pTopic); return pTopic; } /** * add a new Topic from the given triple */ public Topic add(TripleQuery query,Triple pTopicTriple) { Topic lTopic=new Topic(query,pTopicTriple); add(lTopic); return lTopic; } // reinitialize my mTopic map public void reinit() { mTopicMap.clear(); for (Topic lTopic:mTopics) { mTopicMap.put(lTopic.getPageid(),lTopic); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicManager fromJson(String json) { TopicManager result=JSON.parseObject(json, TopicManager.class); result.reinit(); return result; } // default constructor public TopicManager() {} // construct me from the given triple Query query public TopicManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicQuery=query.query(null,"isA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } // then the SMW triplestore lTopicQuery=query.query(null,"Property:IsA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } init(query); } // constructor for Topic Manager // >>>{user defined topicmanager code}{Topic}{Topic} // <<<{user defined topicmanager code}{Topic}{Topic} } // class Topic Manager /** * Action * */ public static class Action extends TopicBase { public String pageid; public String servicetype; public String service; public String inputtype; public String input; public String actionpage; public String output; public String getServicetype() { return servicetype; } public void setServicetype(String pServicetype) { servicetype=pServicetype; } public String getService() { return service; } public void setService(String pService) { service=pService; } public String getInputtype() { return inputtype; } public void setInputtype(String pInputtype) { inputtype=pInputtype; } public String getInput() { return input; } public void setInput(String pInput) { input=pInput; } public String getActionpage() { return actionpage; } public void setActionpage(String pActionpage) { actionpage=pActionpage; } public String getOutput() { return output; } public void setOutput(String pOutput) { output=pOutput; } /** * convert this Action to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Action */ public Action() {} /** * construct a Action from the given Triple * @param query - the TripleQuery to get the triples from * @param pActionTriple - the triple to construct me from */ public Action(TripleQuery query,Triple pActionTriple) { this(query,pActionTriple.getSubject().toString()); } // constructor /** * construct a Action from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Action(TripleQuery query,String pageid) { this.pageid=pageid; Triple servicetypeTriple=query.selectSingle(pageid,"servicetype",null); if (servicetypeTriple==null) servicetypeTriple=query.selectSingle(pageid,"Property:Action_servicetype",null); if (servicetypeTriple!=null) servicetype=servicetypeTriple.getObject().toString(); Triple serviceTriple=query.selectSingle(pageid,"service",null); if (serviceTriple==null) serviceTriple=query.selectSingle(pageid,"Property:Action_service",null); if (serviceTriple!=null) service=serviceTriple.getObject().toString(); Triple inputtypeTriple=query.selectSingle(pageid,"inputtype",null); if (inputtypeTriple==null) inputtypeTriple=query.selectSingle(pageid,"Property:Action_inputtype",null); if (inputtypeTriple!=null) inputtype=inputtypeTriple.getObject().toString(); Triple inputTriple=query.selectSingle(pageid,"input",null); if (inputTriple==null) inputTriple=query.selectSingle(pageid,"Property:Action_input",null); if (inputTriple!=null) input=inputTriple.getObject().toString(); Triple actionpageTriple=query.selectSingle(pageid,"actionpage",null); if (actionpageTriple==null) actionpageTriple=query.selectSingle(pageid,"Property:Action_actionpage",null); if (actionpageTriple!=null) actionpage=actionpageTriple.getObject().toString(); Triple outputTriple=query.selectSingle(pageid,"output",null); if (outputTriple==null) outputTriple=query.selectSingle(pageid,"Property:Action_output",null); if (outputTriple!=null) output=outputTriple.getObject().toString(); init(query); } // constructor for Action // >>>{user defined topic code}{Action}{Action} // <<<{user defined topic code}{Action}{Action} } // class Action /** * Manager for Action */ public static class ActionManager extends TopicBase { public String topicName="Action"; public transient List<Action> mActions=new ArrayList<Action>(); public transient Map<String,Action> mActionMap=new LinkedHashMap<String,Action>(); /** * get my Actions */ public List<Action> getActions() { List<Action> result=this.mActions; return result; } /** * add a new Action */ public Action add(Action pAction) { mActions.add(pAction); mActionMap.put(pAction.getPageid(),pAction); return pAction; } /** * add a new Action from the given triple */ public Action add(TripleQuery query,Triple pActionTriple) { Action lAction=new Action(query,pActionTriple); add(lAction); return lAction; } // reinitialize my mAction map public void reinit() { mActionMap.clear(); for (Action lAction:mActions) { mActionMap.put(lAction.getPageid(),lAction); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ActionManager fromJson(String json) { ActionManager result=JSON.parseObject(json, ActionManager.class); result.reinit(); return result; } // default constructor public ActionManager() {} // construct me from the given triple Query query public ActionManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lActionQuery=query.query(null,"isA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } // then the SMW triplestore lActionQuery=query.query(null,"Property:IsA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } init(query); } // constructor for Action Manager // >>>{user defined topicmanager code}{Action}{Action} // <<<{user defined topicmanager code}{Action}{Action} } // class Action Manager /** * TopicLink * A TopicLink links two Concepts */ public static class TopicLink extends TopicBase { public String pageid; public String name; public String source; public String sourceRole; public String sourceMultiple; public String sourceDocumentation; public String target; public String targetRole; public String targetMultiple; public String targetDocumentation; public String masterDetail; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getSource() { return source; } public void setSource(String pSource) { source=pSource; } public String getSourceRole() { return sourceRole; } public void setSourceRole(String pSourceRole) { sourceRole=pSourceRole; } public String getSourceMultiple() { return sourceMultiple; } public void setSourceMultiple(String pSourceMultiple) { sourceMultiple=pSourceMultiple; } public String getSourceDocumentation() { return sourceDocumentation; } public void setSourceDocumentation(String pSourceDocumentation) { sourceDocumentation=pSourceDocumentation; } public String getTarget() { return target; } public void setTarget(String pTarget) { target=pTarget; } public String getTargetRole() { return targetRole; } public void setTargetRole(String pTargetRole) { targetRole=pTargetRole; } public String getTargetMultiple() { return targetMultiple; } public void setTargetMultiple(String pTargetMultiple) { targetMultiple=pTargetMultiple; } public String getTargetDocumentation() { return targetDocumentation; } public void setTargetDocumentation(String pTargetDocumentation) { targetDocumentation=pTargetDocumentation; } public String getMasterDetail() { return masterDetail; } public void setMasterDetail(String pMasterDetail) { masterDetail=pMasterDetail; } /** * convert this TopicLink to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for TopicLink */ public TopicLink() {} /** * construct a TopicLink from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicLinkTriple - the triple to construct me from */ public TopicLink(TripleQuery query,Triple pTopicLinkTriple) { this(query,pTopicLinkTriple.getSubject().toString()); } // constructor /** * construct a TopicLink from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public TopicLink(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:TopicLink_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple sourceTriple=query.selectSingle(pageid,"source",null); if (sourceTriple==null) sourceTriple=query.selectSingle(pageid,"Property:TopicLink_source",null); if (sourceTriple!=null) source=sourceTriple.getObject().toString(); Triple sourceRoleTriple=query.selectSingle(pageid,"sourceRole",null); if (sourceRoleTriple==null) sourceRoleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceRole",null); if (sourceRoleTriple!=null) sourceRole=sourceRoleTriple.getObject().toString(); Triple sourceMultipleTriple=query.selectSingle(pageid,"sourceMultiple",null); if (sourceMultipleTriple==null) sourceMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceMultiple",null); if (sourceMultipleTriple!=null) sourceMultiple=sourceMultipleTriple.getObject().toString(); Triple sourceDocumentationTriple=query.selectSingle(pageid,"sourceDocumentation",null); if (sourceDocumentationTriple==null) sourceDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_sourceDocumentation",null); if (sourceDocumentationTriple!=null) sourceDocumentation=sourceDocumentationTriple.getObject().toString(); Triple targetTriple=query.selectSingle(pageid,"target",null); if (targetTriple==null) targetTriple=query.selectSingle(pageid,"Property:TopicLink_target",null); if (targetTriple!=null) target=targetTriple.getObject().toString(); Triple targetRoleTriple=query.selectSingle(pageid,"targetRole",null); if (targetRoleTriple==null) targetRoleTriple=query.selectSingle(pageid,"Property:TopicLink_targetRole",null); if (targetRoleTriple!=null) targetRole=targetRoleTriple.getObject().toString(); Triple targetMultipleTriple=query.selectSingle(pageid,"targetMultiple",null); if (targetMultipleTriple==null) targetMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_targetMultiple",null); if (targetMultipleTriple!=null) targetMultiple=targetMultipleTriple.getObject().toString(); Triple targetDocumentationTriple=query.selectSingle(pageid,"targetDocumentation",null); if (targetDocumentationTriple==null) targetDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_targetDocumentation",null); if (targetDocumentationTriple!=null) targetDocumentation=targetDocumentationTriple.getObject().toString(); Triple masterDetailTriple=query.selectSingle(pageid,"masterDetail",null); if (masterDetailTriple==null) masterDetailTriple=query.selectSingle(pageid,"Property:TopicLink_masterDetail",null); if (masterDetailTriple!=null) masterDetail=masterDetailTriple.getObject().toString(); init(query); } // constructor for TopicLink // >>>{user defined topic code}{TopicLink}{TopicLink} // <<<{user defined topic code}{TopicLink}{TopicLink} } // class TopicLink /** * Manager for TopicLink */ public static class TopicLinkManager extends TopicBase { public String topicName="TopicLink"; public transient List<TopicLink> mTopicLinks=new ArrayList<TopicLink>(); public transient Map<String,TopicLink> mTopicLinkMap=new LinkedHashMap<String,TopicLink>(); /** * get my TopicLinks */ public List<TopicLink> getTopicLinks() { List<TopicLink> result=this.mTopicLinks; return result; } /** * add a new TopicLink */ public TopicLink add(TopicLink pTopicLink) { mTopicLinks.add(pTopicLink); mTopicLinkMap.put(pTopicLink.getPageid(),pTopicLink); return pTopicLink; } /** * add a new TopicLink from the given triple */ public TopicLink add(TripleQuery query,Triple pTopicLinkTriple) { TopicLink lTopicLink=new TopicLink(query,pTopicLinkTriple); add(lTopicLink); return lTopicLink; } // reinitialize my mTopicLink map public void reinit() { mTopicLinkMap.clear(); for (TopicLink lTopicLink:mTopicLinks) { mTopicLinkMap.put(lTopicLink.getPageid(),lTopicLink); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicLinkManager fromJson(String json) { TopicLinkManager result=JSON.parseObject(json, TopicLinkManager.class); result.reinit(); return result; } // default constructor public TopicLinkManager() {} // construct me from the given triple Query query public TopicLinkManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicLinkQuery=query.query(null,"isA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } // then the SMW triplestore lTopicLinkQuery=query.query(null,"Property:IsA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } init(query); } // constructor for TopicLink Manager // >>>{user defined topicmanager code}{TopicLink}{TopicLink} // <<<{user defined topicmanager code}{TopicLink}{TopicLink} } // class TopicLink Manager } 56dda3bf593001f149819a26db4e5fe44961cba8 Concept:Action/Java 108 127 170 2015-11-06T06:46:35Z Wf 1 created by WikiTask 2015-11-06T06:46:34Z wikitext text/x-wiki === java code === <source lang='java' id='javacode'>@// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @def static { /** * Base class */ static abstract class TopicBase { /** * initialize */ public void init(TripleQuery query) { } } // TopicBase /** * Context * A Context groups some topics like a Namespace/Package */ public static class Context extends TopicBase { public String pageid; public String name; public String getName() { return name; } public void setName(String pName) { name=pName; } /** * convert this Context to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Context */ public Context() {} /** * construct a Context from the given Triple * @param query - the TripleQuery to get the triples from * @param pContextTriple - the triple to construct me from */ public Context(TripleQuery query,Triple pContextTriple) { this(query,pContextTriple.getSubject().toString()); } // constructor /** * construct a Context from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Context(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Context_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); init(query); } // constructor for Context // >>>{user defined topic code}{Context}{Context} // <<<{user defined topic code}{Context}{Context} } // class Context /** * Manager for Context */ public static class ContextManager extends TopicBase { public String topicName="Context"; public transient List<Context> mContexts=new ArrayList<Context>(); public transient Map<String,Context> mContextMap=new LinkedHashMap<String,Context>(); /** * get my Contexts */ public List<Context> getContexts() { List<Context> result=this.mContexts; return result; } /** * add a new Context */ public Context add(Context pContext) { mContexts.add(pContext); mContextMap.put(pContext.getPageid(),pContext); return pContext; } /** * add a new Context from the given triple */ public Context add(TripleQuery query,Triple pContextTriple) { Context lContext=new Context(query,pContextTriple); add(lContext); return lContext; } // reinitialize my mContext map public void reinit() { mContextMap.clear(); for (Context lContext:mContexts) { mContextMap.put(lContext.getPageid(),lContext); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ContextManager fromJson(String json) { ContextManager result=JSON.parseObject(json, ContextManager.class); result.reinit(); return result; } // default constructor public ContextManager() {} // construct me from the given triple Query query public ContextManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lContextQuery=query.query(null,"isA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } // then the SMW triplestore lContextQuery=query.query(null,"Property:IsA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } init(query); } // constructor for Context Manager // >>>{user defined topicmanager code}{Context}{Context} // <<<{user defined topicmanager code}{Context}{Context} } // class Context Manager /** * Property * a Property is a Feature/Attribute of a Topic */ public static class Property extends TopicBase { public String pageid; public String name; public String label; public String type; public String index; public String sortPos; public String primaryKey; public String mandatory; public String namespace; public String size; public String uploadable; public String defaultValue; public String inputType; public String allowedValues; public String documentation; public String values_from; public String showInGrid; public String isLink; public String nullable; public String topic; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getLabel() { return label; } public void setLabel(String pLabel) { label=pLabel; } public String getType() { return type; } public void setType(String pType) { type=pType; } public String getIndex() { return index; } public void setIndex(String pIndex) { index=pIndex; } public String getSortPos() { return sortPos; } public void setSortPos(String pSortPos) { sortPos=pSortPos; } public String getPrimaryKey() { return primaryKey; } public void setPrimaryKey(String pPrimaryKey) { primaryKey=pPrimaryKey; } public String getMandatory() { return mandatory; } public void setMandatory(String pMandatory) { mandatory=pMandatory; } public String getNamespace() { return namespace; } public void setNamespace(String pNamespace) { namespace=pNamespace; } public String getSize() { return size; } public void setSize(String pSize) { size=pSize; } public String getUploadable() { return uploadable; } public void setUploadable(String pUploadable) { uploadable=pUploadable; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String pDefaultValue) { defaultValue=pDefaultValue; } public String getInputType() { return inputType; } public void setInputType(String pInputType) { inputType=pInputType; } public String getAllowedValues() { return allowedValues; } public void setAllowedValues(String pAllowedValues) { allowedValues=pAllowedValues; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getValues_from() { return values_from; } public void setValues_from(String pValues_from) { values_from=pValues_from; } public String getShowInGrid() { return showInGrid; } public void setShowInGrid(String pShowInGrid) { showInGrid=pShowInGrid; } public String getIsLink() { return isLink; } public void setIsLink(String pIsLink) { isLink=pIsLink; } public String getNullable() { return nullable; } public void setNullable(String pNullable) { nullable=pNullable; } public String getTopic() { return topic; } public void setTopic(String pTopic) { topic=pTopic; } /** * convert this Property to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Property */ public Property() {} /** * construct a Property from the given Triple * @param query - the TripleQuery to get the triples from * @param pPropertyTriple - the triple to construct me from */ public Property(TripleQuery query,Triple pPropertyTriple) { this(query,pPropertyTriple.getSubject().toString()); } // constructor /** * construct a Property from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Property(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Property_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple labelTriple=query.selectSingle(pageid,"label",null); if (labelTriple==null) labelTriple=query.selectSingle(pageid,"Property:Property_label",null); if (labelTriple!=null) label=labelTriple.getObject().toString(); Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:Property_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple indexTriple=query.selectSingle(pageid,"index",null); if (indexTriple==null) indexTriple=query.selectSingle(pageid,"Property:Property_index",null); if (indexTriple!=null) index=indexTriple.getObject().toString(); Triple sortPosTriple=query.selectSingle(pageid,"sortPos",null); if (sortPosTriple==null) sortPosTriple=query.selectSingle(pageid,"Property:Property_sortPos",null); if (sortPosTriple!=null) sortPos=sortPosTriple.getObject().toString(); Triple primaryKeyTriple=query.selectSingle(pageid,"primaryKey",null); if (primaryKeyTriple==null) primaryKeyTriple=query.selectSingle(pageid,"Property:Property_primaryKey",null); if (primaryKeyTriple!=null) primaryKey=primaryKeyTriple.getObject().toString(); Triple mandatoryTriple=query.selectSingle(pageid,"mandatory",null); if (mandatoryTriple==null) mandatoryTriple=query.selectSingle(pageid,"Property:Property_mandatory",null); if (mandatoryTriple!=null) mandatory=mandatoryTriple.getObject().toString(); Triple namespaceTriple=query.selectSingle(pageid,"namespace",null); if (namespaceTriple==null) namespaceTriple=query.selectSingle(pageid,"Property:Property_namespace",null); if (namespaceTriple!=null) namespace=namespaceTriple.getObject().toString(); Triple sizeTriple=query.selectSingle(pageid,"size",null); if (sizeTriple==null) sizeTriple=query.selectSingle(pageid,"Property:Property_size",null); if (sizeTriple!=null) size=sizeTriple.getObject().toString(); Triple uploadableTriple=query.selectSingle(pageid,"uploadable",null); if (uploadableTriple==null) uploadableTriple=query.selectSingle(pageid,"Property:Property_uploadable",null); if (uploadableTriple!=null) uploadable=uploadableTriple.getObject().toString(); Triple defaultValueTriple=query.selectSingle(pageid,"defaultValue",null); if (defaultValueTriple==null) defaultValueTriple=query.selectSingle(pageid,"Property:Property_defaultValue",null); if (defaultValueTriple!=null) defaultValue=defaultValueTriple.getObject().toString(); Triple inputTypeTriple=query.selectSingle(pageid,"inputType",null); if (inputTypeTriple==null) inputTypeTriple=query.selectSingle(pageid,"Property:Property_inputType",null); if (inputTypeTriple!=null) inputType=inputTypeTriple.getObject().toString(); Triple allowedValuesTriple=query.selectSingle(pageid,"allowedValues",null); if (allowedValuesTriple==null) allowedValuesTriple=query.selectSingle(pageid,"Property:Property_allowedValues",null); if (allowedValuesTriple!=null) allowedValues=allowedValuesTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Property_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple values_fromTriple=query.selectSingle(pageid,"values_from",null); if (values_fromTriple==null) values_fromTriple=query.selectSingle(pageid,"Property:Property_values_from",null); if (values_fromTriple!=null) values_from=values_fromTriple.getObject().toString(); Triple showInGridTriple=query.selectSingle(pageid,"showInGrid",null); if (showInGridTriple==null) showInGridTriple=query.selectSingle(pageid,"Property:Property_showInGrid",null); if (showInGridTriple!=null) showInGrid=showInGridTriple.getObject().toString(); Triple isLinkTriple=query.selectSingle(pageid,"isLink",null); if (isLinkTriple==null) isLinkTriple=query.selectSingle(pageid,"Property:Property_isLink",null); if (isLinkTriple!=null) isLink=isLinkTriple.getObject().toString(); Triple nullableTriple=query.selectSingle(pageid,"nullable",null); if (nullableTriple==null) nullableTriple=query.selectSingle(pageid,"Property:Property_nullable",null); if (nullableTriple!=null) nullable=nullableTriple.getObject().toString(); Triple topicTriple=query.selectSingle(pageid,"topic",null); if (topicTriple==null) topicTriple=query.selectSingle(pageid,"Property:Property_topic",null); if (topicTriple!=null) topic=topicTriple.getObject().toString(); init(query); } // constructor for Property // >>>{user defined topic code}{Property}{Property} // <<<{user defined topic code}{Property}{Property} } // class Property /** * Manager for Property */ public static class PropertyManager extends TopicBase { public String topicName="Property"; public transient List<Property> mPropertys=new ArrayList<Property>(); public transient Map<String,Property> mPropertyMap=new LinkedHashMap<String,Property>(); /** * get my Properties */ public List<Property> getProperties() { List<Property> result=this.mPropertys; return result; } /** * add a new Property */ public Property add(Property pProperty) { mPropertys.add(pProperty); mPropertyMap.put(pProperty.getPageid(),pProperty); return pProperty; } /** * add a new Property from the given triple */ public Property add(TripleQuery query,Triple pPropertyTriple) { Property lProperty=new Property(query,pPropertyTriple); add(lProperty); return lProperty; } // reinitialize my mProperty map public void reinit() { mPropertyMap.clear(); for (Property lProperty:mPropertys) { mPropertyMap.put(lProperty.getPageid(),lProperty); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static PropertyManager fromJson(String json) { PropertyManager result=JSON.parseObject(json, PropertyManager.class); result.reinit(); return result; } // default constructor public PropertyManager() {} // construct me from the given triple Query query public PropertyManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lPropertyQuery=query.query(null,"isA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } // then the SMW triplestore lPropertyQuery=query.query(null,"Property:IsA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } init(query); } // constructor for Property Manager // >>>{user defined topicmanager code}{Property}{Property} // <<<{user defined topicmanager code}{Property}{Property} } // class Property Manager /** * SMW_Type * an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes */ public static class SMW_Type extends TopicBase { public String pageid; public String type; public String documentation; public String helppage; public String typepage; public String javaType; public String usedByProperties; public String getType() { return type; } public void setType(String pType) { type=pType; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getHelppage() { return helppage; } public void setHelppage(String pHelppage) { helppage=pHelppage; } public String getTypepage() { return typepage; } public void setTypepage(String pTypepage) { typepage=pTypepage; } public String getJavaType() { return javaType; } public void setJavaType(String pJavaType) { javaType=pJavaType; } public String getUsedByProperties() { return usedByProperties; } public void setUsedByProperties(String pUsedByProperties) { usedByProperties=pUsedByProperties; } /** * convert this SMW_Type to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for SMW_Type */ public SMW_Type() {} /** * construct a SMW_Type from the given Triple * @param query - the TripleQuery to get the triples from * @param pSMW_TypeTriple - the triple to construct me from */ public SMW_Type(TripleQuery query,Triple pSMW_TypeTriple) { this(query,pSMW_TypeTriple.getSubject().toString()); } // constructor /** * construct a SMW_Type from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public SMW_Type(TripleQuery query,String pageid) { this.pageid=pageid; Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:SMW_Type_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:SMW_Type_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple helppageTriple=query.selectSingle(pageid,"helppage",null); if (helppageTriple==null) helppageTriple=query.selectSingle(pageid,"Property:SMW_Type_helppage",null); if (helppageTriple!=null) helppage=helppageTriple.getObject().toString(); Triple typepageTriple=query.selectSingle(pageid,"typepage",null); if (typepageTriple==null) typepageTriple=query.selectSingle(pageid,"Property:SMW_Type_typepage",null); if (typepageTriple!=null) typepage=typepageTriple.getObject().toString(); Triple javaTypeTriple=query.selectSingle(pageid,"javaType",null); if (javaTypeTriple==null) javaTypeTriple=query.selectSingle(pageid,"Property:SMW_Type_javaType",null); if (javaTypeTriple!=null) javaType=javaTypeTriple.getObject().toString(); Triple usedByPropertiesTriple=query.selectSingle(pageid,"usedByProperties",null); if (usedByPropertiesTriple==null) usedByPropertiesTriple=query.selectSingle(pageid,"Property:SMW_Type_usedByProperties",null); if (usedByPropertiesTriple!=null) usedByProperties=usedByPropertiesTriple.getObject().toString(); init(query); } // constructor for SMW_Type // >>>{user defined topic code}{SMW_Type}{SMW_Type} // <<<{user defined topic code}{SMW_Type}{SMW_Type} } // class SMW_Type /** * Manager for SMW_Type */ public static class SMW_TypeManager extends TopicBase { public String topicName="SMW_Type"; public transient List<SMW_Type> mSMW_Types=new ArrayList<SMW_Type>(); public transient Map<String,SMW_Type> mSMW_TypeMap=new LinkedHashMap<String,SMW_Type>(); /** * get my SMW_Types */ public List<SMW_Type> getSMW_Types() { List<SMW_Type> result=this.mSMW_Types; return result; } /** * add a new SMW_Type */ public SMW_Type add(SMW_Type pSMW_Type) { mSMW_Types.add(pSMW_Type); mSMW_TypeMap.put(pSMW_Type.getPageid(),pSMW_Type); return pSMW_Type; } /** * add a new SMW_Type from the given triple */ public SMW_Type add(TripleQuery query,Triple pSMW_TypeTriple) { SMW_Type lSMW_Type=new SMW_Type(query,pSMW_TypeTriple); add(lSMW_Type); return lSMW_Type; } // reinitialize my mSMW_Type map public void reinit() { mSMW_TypeMap.clear(); for (SMW_Type lSMW_Type:mSMW_Types) { mSMW_TypeMap.put(lSMW_Type.getPageid(),lSMW_Type); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static SMW_TypeManager fromJson(String json) { SMW_TypeManager result=JSON.parseObject(json, SMW_TypeManager.class); result.reinit(); return result; } // default constructor public SMW_TypeManager() {} // construct me from the given triple Query query public SMW_TypeManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lSMW_TypeQuery=query.query(null,"isA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } // then the SMW triplestore lSMW_TypeQuery=query.query(null,"Property:IsA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } init(query); } // constructor for SMW_Type Manager // >>>{user defined topicmanager code}{SMW_Type}{SMW_Type} // <<<{user defined topicmanager code}{SMW_Type}{SMW_Type} } // class SMW_Type Manager /** * Topic * A Topic is a Concept/Class/Thing/Entity */ public static class Topic extends TopicBase { public String pageid; public String name; public String pluralName; public String icon; public String iconUrl; public String documentation; public String wikiDocumentation; public String defaultstoremode; public String listLimit; public String cargo; public String context; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getPluralName() { return pluralName; } public void setPluralName(String pPluralName) { pluralName=pPluralName; } public String getIcon() { return icon; } public void setIcon(String pIcon) { icon=pIcon; } public String getIconUrl() { return iconUrl; } public void setIconUrl(String pIconUrl) { iconUrl=pIconUrl; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getWikiDocumentation() { return wikiDocumentation; } public void setWikiDocumentation(String pWikiDocumentation) { wikiDocumentation=pWikiDocumentation; } public String getDefaultstoremode() { return defaultstoremode; } public void setDefaultstoremode(String pDefaultstoremode) { defaultstoremode=pDefaultstoremode; } public String getListLimit() { return listLimit; } public void setListLimit(String pListLimit) { listLimit=pListLimit; } public String getCargo() { return cargo; } public void setCargo(String pCargo) { cargo=pCargo; } public String getContext() { return context; } public void setContext(String pContext) { context=pContext; } /** * convert this Topic to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Topic */ public Topic() {} /** * construct a Topic from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicTriple - the triple to construct me from */ public Topic(TripleQuery query,Triple pTopicTriple) { this(query,pTopicTriple.getSubject().toString()); } // constructor /** * construct a Topic from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Topic(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Topic_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple pluralNameTriple=query.selectSingle(pageid,"pluralName",null); if (pluralNameTriple==null) pluralNameTriple=query.selectSingle(pageid,"Property:Topic_pluralName",null); if (pluralNameTriple!=null) pluralName=pluralNameTriple.getObject().toString(); Triple iconTriple=query.selectSingle(pageid,"icon",null); if (iconTriple==null) iconTriple=query.selectSingle(pageid,"Property:Topic_icon",null); if (iconTriple!=null) icon=iconTriple.getObject().toString(); Triple iconUrlTriple=query.selectSingle(pageid,"iconUrl",null); if (iconUrlTriple==null) iconUrlTriple=query.selectSingle(pageid,"Property:Topic_iconUrl",null); if (iconUrlTriple!=null) iconUrl=iconUrlTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Topic_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple wikiDocumentationTriple=query.selectSingle(pageid,"wikiDocumentation",null); if (wikiDocumentationTriple==null) wikiDocumentationTriple=query.selectSingle(pageid,"Property:Topic_wikiDocumentation",null); if (wikiDocumentationTriple!=null) wikiDocumentation=wikiDocumentationTriple.getObject().toString(); Triple defaultstoremodeTriple=query.selectSingle(pageid,"defaultstoremode",null); if (defaultstoremodeTriple==null) defaultstoremodeTriple=query.selectSingle(pageid,"Property:Topic_defaultstoremode",null); if (defaultstoremodeTriple!=null) defaultstoremode=defaultstoremodeTriple.getObject().toString(); Triple listLimitTriple=query.selectSingle(pageid,"listLimit",null); if (listLimitTriple==null) listLimitTriple=query.selectSingle(pageid,"Property:Topic_listLimit",null); if (listLimitTriple!=null) listLimit=listLimitTriple.getObject().toString(); Triple cargoTriple=query.selectSingle(pageid,"cargo",null); if (cargoTriple==null) cargoTriple=query.selectSingle(pageid,"Property:Topic_cargo",null); if (cargoTriple!=null) cargo=cargoTriple.getObject().toString(); Triple contextTriple=query.selectSingle(pageid,"context",null); if (contextTriple==null) contextTriple=query.selectSingle(pageid,"Property:Topic_context",null); if (contextTriple!=null) context=contextTriple.getObject().toString(); init(query); } // constructor for Topic // >>>{user defined topic code}{Topic}{Topic} // <<<{user defined topic code}{Topic}{Topic} } // class Topic /** * Manager for Topic */ public static class TopicManager extends TopicBase { public String topicName="Topic"; public transient List<Topic> mTopics=new ArrayList<Topic>(); public transient Map<String,Topic> mTopicMap=new LinkedHashMap<String,Topic>(); /** * get my Topics */ public List<Topic> getTopics() { List<Topic> result=this.mTopics; return result; } /** * add a new Topic */ public Topic add(Topic pTopic) { mTopics.add(pTopic); mTopicMap.put(pTopic.getPageid(),pTopic); return pTopic; } /** * add a new Topic from the given triple */ public Topic add(TripleQuery query,Triple pTopicTriple) { Topic lTopic=new Topic(query,pTopicTriple); add(lTopic); return lTopic; } // reinitialize my mTopic map public void reinit() { mTopicMap.clear(); for (Topic lTopic:mTopics) { mTopicMap.put(lTopic.getPageid(),lTopic); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicManager fromJson(String json) { TopicManager result=JSON.parseObject(json, TopicManager.class); result.reinit(); return result; } // default constructor public TopicManager() {} // construct me from the given triple Query query public TopicManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicQuery=query.query(null,"isA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } // then the SMW triplestore lTopicQuery=query.query(null,"Property:IsA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } init(query); } // constructor for Topic Manager // >>>{user defined topicmanager code}{Topic}{Topic} // <<<{user defined topicmanager code}{Topic}{Topic} } // class Topic Manager /** * Action * */ public static class Action extends TopicBase { public String pageid; public String servicetype; public String service; public String inputtype; public String input; public String actionpage; public String output; public String getServicetype() { return servicetype; } public void setServicetype(String pServicetype) { servicetype=pServicetype; } public String getService() { return service; } public void setService(String pService) { service=pService; } public String getInputtype() { return inputtype; } public void setInputtype(String pInputtype) { inputtype=pInputtype; } public String getInput() { return input; } public void setInput(String pInput) { input=pInput; } public String getActionpage() { return actionpage; } public void setActionpage(String pActionpage) { actionpage=pActionpage; } public String getOutput() { return output; } public void setOutput(String pOutput) { output=pOutput; } /** * convert this Action to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Action */ public Action() {} /** * construct a Action from the given Triple * @param query - the TripleQuery to get the triples from * @param pActionTriple - the triple to construct me from */ public Action(TripleQuery query,Triple pActionTriple) { this(query,pActionTriple.getSubject().toString()); } // constructor /** * construct a Action from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Action(TripleQuery query,String pageid) { this.pageid=pageid; Triple servicetypeTriple=query.selectSingle(pageid,"servicetype",null); if (servicetypeTriple==null) servicetypeTriple=query.selectSingle(pageid,"Property:Action_servicetype",null); if (servicetypeTriple!=null) servicetype=servicetypeTriple.getObject().toString(); Triple serviceTriple=query.selectSingle(pageid,"service",null); if (serviceTriple==null) serviceTriple=query.selectSingle(pageid,"Property:Action_service",null); if (serviceTriple!=null) service=serviceTriple.getObject().toString(); Triple inputtypeTriple=query.selectSingle(pageid,"inputtype",null); if (inputtypeTriple==null) inputtypeTriple=query.selectSingle(pageid,"Property:Action_inputtype",null); if (inputtypeTriple!=null) inputtype=inputtypeTriple.getObject().toString(); Triple inputTriple=query.selectSingle(pageid,"input",null); if (inputTriple==null) inputTriple=query.selectSingle(pageid,"Property:Action_input",null); if (inputTriple!=null) input=inputTriple.getObject().toString(); Triple actionpageTriple=query.selectSingle(pageid,"actionpage",null); if (actionpageTriple==null) actionpageTriple=query.selectSingle(pageid,"Property:Action_actionpage",null); if (actionpageTriple!=null) actionpage=actionpageTriple.getObject().toString(); Triple outputTriple=query.selectSingle(pageid,"output",null); if (outputTriple==null) outputTriple=query.selectSingle(pageid,"Property:Action_output",null); if (outputTriple!=null) output=outputTriple.getObject().toString(); init(query); } // constructor for Action // >>>{user defined topic code}{Action}{Action} // <<<{user defined topic code}{Action}{Action} } // class Action /** * Manager for Action */ public static class ActionManager extends TopicBase { public String topicName="Action"; public transient List<Action> mActions=new ArrayList<Action>(); public transient Map<String,Action> mActionMap=new LinkedHashMap<String,Action>(); /** * get my Actions */ public List<Action> getActions() { List<Action> result=this.mActions; return result; } /** * add a new Action */ public Action add(Action pAction) { mActions.add(pAction); mActionMap.put(pAction.getPageid(),pAction); return pAction; } /** * add a new Action from the given triple */ public Action add(TripleQuery query,Triple pActionTriple) { Action lAction=new Action(query,pActionTriple); add(lAction); return lAction; } // reinitialize my mAction map public void reinit() { mActionMap.clear(); for (Action lAction:mActions) { mActionMap.put(lAction.getPageid(),lAction); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ActionManager fromJson(String json) { ActionManager result=JSON.parseObject(json, ActionManager.class); result.reinit(); return result; } // default constructor public ActionManager() {} // construct me from the given triple Query query public ActionManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lActionQuery=query.query(null,"isA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } // then the SMW triplestore lActionQuery=query.query(null,"Property:IsA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } init(query); } // constructor for Action Manager // >>>{user defined topicmanager code}{Action}{Action} // <<<{user defined topicmanager code}{Action}{Action} } // class Action Manager /** * TopicLink * A TopicLink links two Concepts */ public static class TopicLink extends TopicBase { public String pageid; public String name; public String source; public String sourceRole; public String sourceMultiple; public String sourceDocumentation; public String target; public String targetRole; public String targetMultiple; public String targetDocumentation; public String masterDetail; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getSource() { return source; } public void setSource(String pSource) { source=pSource; } public String getSourceRole() { return sourceRole; } public void setSourceRole(String pSourceRole) { sourceRole=pSourceRole; } public String getSourceMultiple() { return sourceMultiple; } public void setSourceMultiple(String pSourceMultiple) { sourceMultiple=pSourceMultiple; } public String getSourceDocumentation() { return sourceDocumentation; } public void setSourceDocumentation(String pSourceDocumentation) { sourceDocumentation=pSourceDocumentation; } public String getTarget() { return target; } public void setTarget(String pTarget) { target=pTarget; } public String getTargetRole() { return targetRole; } public void setTargetRole(String pTargetRole) { targetRole=pTargetRole; } public String getTargetMultiple() { return targetMultiple; } public void setTargetMultiple(String pTargetMultiple) { targetMultiple=pTargetMultiple; } public String getTargetDocumentation() { return targetDocumentation; } public void setTargetDocumentation(String pTargetDocumentation) { targetDocumentation=pTargetDocumentation; } public String getMasterDetail() { return masterDetail; } public void setMasterDetail(String pMasterDetail) { masterDetail=pMasterDetail; } /** * convert this TopicLink to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for TopicLink */ public TopicLink() {} /** * construct a TopicLink from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicLinkTriple - the triple to construct me from */ public TopicLink(TripleQuery query,Triple pTopicLinkTriple) { this(query,pTopicLinkTriple.getSubject().toString()); } // constructor /** * construct a TopicLink from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public TopicLink(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:TopicLink_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple sourceTriple=query.selectSingle(pageid,"source",null); if (sourceTriple==null) sourceTriple=query.selectSingle(pageid,"Property:TopicLink_source",null); if (sourceTriple!=null) source=sourceTriple.getObject().toString(); Triple sourceRoleTriple=query.selectSingle(pageid,"sourceRole",null); if (sourceRoleTriple==null) sourceRoleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceRole",null); if (sourceRoleTriple!=null) sourceRole=sourceRoleTriple.getObject().toString(); Triple sourceMultipleTriple=query.selectSingle(pageid,"sourceMultiple",null); if (sourceMultipleTriple==null) sourceMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceMultiple",null); if (sourceMultipleTriple!=null) sourceMultiple=sourceMultipleTriple.getObject().toString(); Triple sourceDocumentationTriple=query.selectSingle(pageid,"sourceDocumentation",null); if (sourceDocumentationTriple==null) sourceDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_sourceDocumentation",null); if (sourceDocumentationTriple!=null) sourceDocumentation=sourceDocumentationTriple.getObject().toString(); Triple targetTriple=query.selectSingle(pageid,"target",null); if (targetTriple==null) targetTriple=query.selectSingle(pageid,"Property:TopicLink_target",null); if (targetTriple!=null) target=targetTriple.getObject().toString(); Triple targetRoleTriple=query.selectSingle(pageid,"targetRole",null); if (targetRoleTriple==null) targetRoleTriple=query.selectSingle(pageid,"Property:TopicLink_targetRole",null); if (targetRoleTriple!=null) targetRole=targetRoleTriple.getObject().toString(); Triple targetMultipleTriple=query.selectSingle(pageid,"targetMultiple",null); if (targetMultipleTriple==null) targetMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_targetMultiple",null); if (targetMultipleTriple!=null) targetMultiple=targetMultipleTriple.getObject().toString(); Triple targetDocumentationTriple=query.selectSingle(pageid,"targetDocumentation",null); if (targetDocumentationTriple==null) targetDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_targetDocumentation",null); if (targetDocumentationTriple!=null) targetDocumentation=targetDocumentationTriple.getObject().toString(); Triple masterDetailTriple=query.selectSingle(pageid,"masterDetail",null); if (masterDetailTriple==null) masterDetailTriple=query.selectSingle(pageid,"Property:TopicLink_masterDetail",null); if (masterDetailTriple!=null) masterDetail=masterDetailTriple.getObject().toString(); init(query); } // constructor for TopicLink // >>>{user defined topic code}{TopicLink}{TopicLink} // <<<{user defined topic code}{TopicLink}{TopicLink} } // class TopicLink /** * Manager for TopicLink */ public static class TopicLinkManager extends TopicBase { public String topicName="TopicLink"; public transient List<TopicLink> mTopicLinks=new ArrayList<TopicLink>(); public transient Map<String,TopicLink> mTopicLinkMap=new LinkedHashMap<String,TopicLink>(); /** * get my TopicLinks */ public List<TopicLink> getTopicLinks() { List<TopicLink> result=this.mTopicLinks; return result; } /** * add a new TopicLink */ public TopicLink add(TopicLink pTopicLink) { mTopicLinks.add(pTopicLink); mTopicLinkMap.put(pTopicLink.getPageid(),pTopicLink); return pTopicLink; } /** * add a new TopicLink from the given triple */ public TopicLink add(TripleQuery query,Triple pTopicLinkTriple) { TopicLink lTopicLink=new TopicLink(query,pTopicLinkTriple); add(lTopicLink); return lTopicLink; } // reinitialize my mTopicLink map public void reinit() { mTopicLinkMap.clear(); for (TopicLink lTopicLink:mTopicLinks) { mTopicLinkMap.put(lTopicLink.getPageid(),lTopicLink); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicLinkManager fromJson(String json) { TopicLinkManager result=JSON.parseObject(json, TopicLinkManager.class); result.reinit(); return result; } // default constructor public TopicLinkManager() {} // construct me from the given triple Query query public TopicLinkManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicLinkQuery=query.query(null,"isA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } // then the SMW triplestore lTopicLinkQuery=query.query(null,"Property:IsA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } init(query); } // constructor for TopicLink Manager // >>>{user defined topicmanager code}{TopicLink}{TopicLink} // <<<{user defined topicmanager code}{TopicLink}{TopicLink} } // class TopicLink Manager } 56dda3bf593001f149819a26db4e5fe44961cba8 List of TopicLinks 0 128 171 2015-11-06T06:46:38Z Wf 1 created by WikiTask 2015-11-06T06:46:37Z wikitext text/x-wiki __NOCACHE__ {{#ask: [[Topic name::TopicLink]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} == TopicLinks == {{#ask: [[Concept:TopicLink]] | ?TopicLink name = name | ?TopicLink source = source | ?TopicLink sourceRole = sourceRole | ?TopicLink sourceMultiple = sourceMultiple | ?TopicLink sourceDocumentation = sourceDocumentation | ?TopicLink target = target | ?TopicLink targetRole = targetRole | ?TopicLink targetMultiple = targetMultiple | ?TopicLink targetDocumentation = targetDocumentation | ?TopicLink masterDetail = masterDetail }} {{#forminput:form=TopicLink|button text=add TopicLink}} <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> === SiDIF === <div class="mw-collapsible-content"> {{#ask: [[Concept:TopicLink]] | ?#=pageid | ?TopicLink name = name | ?TopicLink source = source | ?TopicLink sourceRole = sourceRole | ?TopicLink sourceMultiple = sourceMultiple | ?TopicLink sourceDocumentation = sourceDocumentation | ?TopicLink target = target | ?TopicLink targetRole = targetRole | ?TopicLink targetMultiple = targetMultiple | ?TopicLink targetDocumentation = targetDocumentation | ?TopicLink masterDetail = masterDetail | mainlabel=- | format=template | named args=yes | template=TopicLink | userparam=sidif | limit=300 }} </div> </div> [[:Category:TopicLink]] c0f284d924b14fcc426492123c22631280d48f38 Form:TopicLink 106 129 172 2015-11-06T06:46:41Z Wf 1 created by WikiTask 2015-11-06T06:46:40Z wikitext text/x-wiki <noinclude> This is the {{smartMediaWiki}}-Form for "TopicLink". Create a new TopicLink by entering a new pagename for a TopicLink into the field below. If you enter an existing TopicLink pagename - you will edit the TopicLink with that pagename. {{#forminput:form=TopicLink|values from concept=TopicLink}} </noinclude><includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> <!-- TopicLink --> {{{for template|TopicLink|multiple}}} {| class="wikitable" ! colspan='2'| TopicLink |- ! name: <!-- Text name --> | {{{field|name|input type=|property=TopicLink name|size=50}}} |- ! source: <!-- Page source --> | {{{field|source|input type=dropdown|property=TopicLink source|size=50|mandatory|values from concept=Topic}}} |- ! sourceRole: <!-- Text sourceRole --> | {{{field|sourceRole|input type=|property=TopicLink sourceRole|size=50}}} |- ! sourceMultiple: <!-- Boolean sourceMultiple --> | {{{field|sourceMultiple|input type=|property=TopicLink sourceMultiple|size=50}}} |- ! source Doc: <!-- Text sourceDocumentation --> | {{{field|sourceDocumentation|input type=textarea|property=TopicLink sourceDocumentation|size=300}}} |- ! target: <!-- Page target --> | {{{field|target|input type=|property=TopicLink target|size=50}}} |- ! targetRole: <!-- Text targetRole --> | {{{field|targetRole|input type=|property=TopicLink targetRole|size=50}}} |- ! sourceMultiple: <!-- Boolean targetMultiple --> | {{{field|targetMultiple|input type=|property=TopicLink targetMultiple|size=50}}} |- ! target Doc: <!-- Text targetDocumentation --> | {{{field|targetDocumentation|input type=textarea|property=TopicLink targetDocumentation|size=300}}} |- ! masterDetail: <!-- Boolean masterDetail --> | {{{field|masterDetail|input type=|property=TopicLink masterDetail|size=}}} |- |} {{{field|storemode|default=subobject|hidden}}} {{{end template}}} <!-- TopicLink --> '''Freitext:''' {{{standard input|free text|rows=10}}} {{{standard input|summary}}} {{{standard input|minor edit}}} {{{standard input|watch}}} {{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}} </includeonly> d23bdccb3219935fe8301ad5651ed0b6d7cc0e33 Concept:TopicLink 108 37 173 75 2015-11-06T06:46:45Z Wf 1 created by WikiTask 2015-11-06T06:46:42Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=TopicLink |pluralName=TopicLinks |icon=File:Link.png |iconUrl=/images/f/fd/Link.png |documentation=A TopicLink links two Concepts |wikiDocumentation=A TopicLink links two [[Concept:Topic]]s |defaultstoremode=subobject |cargo= |context=MetaModel |storemode=property }} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Topic/{{FULLPAGENAME}}|title=edit TopicLink}}<br> {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === A TopicLink links two [[Concept:Topic]]s === uml === <uml> title TopicLink note as TopicLinkDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as TopicLinkNote A TopicLink links two Concepts end note class TopicLink { Text name Page source Text sourceRole Boolean sourceMultiple Text sourceDocumentation Page target Text targetRole Boolean targetMultiple Text targetDocumentation Boolean masterDetail } TopicLinkNote .. TopicLink ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[TopicLink source::+]] |TopicLinks see also * [[List of TopicLinks]] * [[Help:TopicLink]] * [[Concept:TopicLink]] * [[:Category:TopicLink]] * [[:Template:TopicLink]] * [[:Form:TopicLink]] topic links: }} [[Category:TopicLink]] dbfc38fadd6412ed6b54822553c9c24bc1444916 Concept:TopicLink/Java 108 130 174 2015-11-06T06:46:48Z Wf 1 created by WikiTask 2015-11-06T06:46:47Z wikitext text/x-wiki === java code === <source lang='java' id='javacode'>@// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @def static { /** * Base class */ static abstract class TopicBase { /** * initialize */ public void init(TripleQuery query) { } } // TopicBase /** * Context * A Context groups some topics like a Namespace/Package */ public static class Context extends TopicBase { public String pageid; public String name; public String getName() { return name; } public void setName(String pName) { name=pName; } /** * convert this Context to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Context */ public Context() {} /** * construct a Context from the given Triple * @param query - the TripleQuery to get the triples from * @param pContextTriple - the triple to construct me from */ public Context(TripleQuery query,Triple pContextTriple) { this(query,pContextTriple.getSubject().toString()); } // constructor /** * construct a Context from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Context(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Context_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); init(query); } // constructor for Context // >>>{user defined topic code}{Context}{Context} // <<<{user defined topic code}{Context}{Context} } // class Context /** * Manager for Context */ public static class ContextManager extends TopicBase { public String topicName="Context"; public transient List<Context> mContexts=new ArrayList<Context>(); public transient Map<String,Context> mContextMap=new LinkedHashMap<String,Context>(); /** * get my Contexts */ public List<Context> getContexts() { List<Context> result=this.mContexts; return result; } /** * add a new Context */ public Context add(Context pContext) { mContexts.add(pContext); mContextMap.put(pContext.getPageid(),pContext); return pContext; } /** * add a new Context from the given triple */ public Context add(TripleQuery query,Triple pContextTriple) { Context lContext=new Context(query,pContextTriple); add(lContext); return lContext; } // reinitialize my mContext map public void reinit() { mContextMap.clear(); for (Context lContext:mContexts) { mContextMap.put(lContext.getPageid(),lContext); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ContextManager fromJson(String json) { ContextManager result=JSON.parseObject(json, ContextManager.class); result.reinit(); return result; } // default constructor public ContextManager() {} // construct me from the given triple Query query public ContextManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lContextQuery=query.query(null,"isA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } // then the SMW triplestore lContextQuery=query.query(null,"Property:IsA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } init(query); } // constructor for Context Manager // >>>{user defined topicmanager code}{Context}{Context} // <<<{user defined topicmanager code}{Context}{Context} } // class Context Manager /** * Property * a Property is a Feature/Attribute of a Topic */ public static class Property extends TopicBase { public String pageid; public String name; public String label; public String type; public String index; public String sortPos; public String primaryKey; public String mandatory; public String namespace; public String size; public String uploadable; public String defaultValue; public String inputType; public String allowedValues; public String documentation; public String values_from; public String showInGrid; public String isLink; public String nullable; public String topic; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getLabel() { return label; } public void setLabel(String pLabel) { label=pLabel; } public String getType() { return type; } public void setType(String pType) { type=pType; } public String getIndex() { return index; } public void setIndex(String pIndex) { index=pIndex; } public String getSortPos() { return sortPos; } public void setSortPos(String pSortPos) { sortPos=pSortPos; } public String getPrimaryKey() { return primaryKey; } public void setPrimaryKey(String pPrimaryKey) { primaryKey=pPrimaryKey; } public String getMandatory() { return mandatory; } public void setMandatory(String pMandatory) { mandatory=pMandatory; } public String getNamespace() { return namespace; } public void setNamespace(String pNamespace) { namespace=pNamespace; } public String getSize() { return size; } public void setSize(String pSize) { size=pSize; } public String getUploadable() { return uploadable; } public void setUploadable(String pUploadable) { uploadable=pUploadable; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String pDefaultValue) { defaultValue=pDefaultValue; } public String getInputType() { return inputType; } public void setInputType(String pInputType) { inputType=pInputType; } public String getAllowedValues() { return allowedValues; } public void setAllowedValues(String pAllowedValues) { allowedValues=pAllowedValues; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getValues_from() { return values_from; } public void setValues_from(String pValues_from) { values_from=pValues_from; } public String getShowInGrid() { return showInGrid; } public void setShowInGrid(String pShowInGrid) { showInGrid=pShowInGrid; } public String getIsLink() { return isLink; } public void setIsLink(String pIsLink) { isLink=pIsLink; } public String getNullable() { return nullable; } public void setNullable(String pNullable) { nullable=pNullable; } public String getTopic() { return topic; } public void setTopic(String pTopic) { topic=pTopic; } /** * convert this Property to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Property */ public Property() {} /** * construct a Property from the given Triple * @param query - the TripleQuery to get the triples from * @param pPropertyTriple - the triple to construct me from */ public Property(TripleQuery query,Triple pPropertyTriple) { this(query,pPropertyTriple.getSubject().toString()); } // constructor /** * construct a Property from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Property(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Property_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple labelTriple=query.selectSingle(pageid,"label",null); if (labelTriple==null) labelTriple=query.selectSingle(pageid,"Property:Property_label",null); if (labelTriple!=null) label=labelTriple.getObject().toString(); Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:Property_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple indexTriple=query.selectSingle(pageid,"index",null); if (indexTriple==null) indexTriple=query.selectSingle(pageid,"Property:Property_index",null); if (indexTriple!=null) index=indexTriple.getObject().toString(); Triple sortPosTriple=query.selectSingle(pageid,"sortPos",null); if (sortPosTriple==null) sortPosTriple=query.selectSingle(pageid,"Property:Property_sortPos",null); if (sortPosTriple!=null) sortPos=sortPosTriple.getObject().toString(); Triple primaryKeyTriple=query.selectSingle(pageid,"primaryKey",null); if (primaryKeyTriple==null) primaryKeyTriple=query.selectSingle(pageid,"Property:Property_primaryKey",null); if (primaryKeyTriple!=null) primaryKey=primaryKeyTriple.getObject().toString(); Triple mandatoryTriple=query.selectSingle(pageid,"mandatory",null); if (mandatoryTriple==null) mandatoryTriple=query.selectSingle(pageid,"Property:Property_mandatory",null); if (mandatoryTriple!=null) mandatory=mandatoryTriple.getObject().toString(); Triple namespaceTriple=query.selectSingle(pageid,"namespace",null); if (namespaceTriple==null) namespaceTriple=query.selectSingle(pageid,"Property:Property_namespace",null); if (namespaceTriple!=null) namespace=namespaceTriple.getObject().toString(); Triple sizeTriple=query.selectSingle(pageid,"size",null); if (sizeTriple==null) sizeTriple=query.selectSingle(pageid,"Property:Property_size",null); if (sizeTriple!=null) size=sizeTriple.getObject().toString(); Triple uploadableTriple=query.selectSingle(pageid,"uploadable",null); if (uploadableTriple==null) uploadableTriple=query.selectSingle(pageid,"Property:Property_uploadable",null); if (uploadableTriple!=null) uploadable=uploadableTriple.getObject().toString(); Triple defaultValueTriple=query.selectSingle(pageid,"defaultValue",null); if (defaultValueTriple==null) defaultValueTriple=query.selectSingle(pageid,"Property:Property_defaultValue",null); if (defaultValueTriple!=null) defaultValue=defaultValueTriple.getObject().toString(); Triple inputTypeTriple=query.selectSingle(pageid,"inputType",null); if (inputTypeTriple==null) inputTypeTriple=query.selectSingle(pageid,"Property:Property_inputType",null); if (inputTypeTriple!=null) inputType=inputTypeTriple.getObject().toString(); Triple allowedValuesTriple=query.selectSingle(pageid,"allowedValues",null); if (allowedValuesTriple==null) allowedValuesTriple=query.selectSingle(pageid,"Property:Property_allowedValues",null); if (allowedValuesTriple!=null) allowedValues=allowedValuesTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Property_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple values_fromTriple=query.selectSingle(pageid,"values_from",null); if (values_fromTriple==null) values_fromTriple=query.selectSingle(pageid,"Property:Property_values_from",null); if (values_fromTriple!=null) values_from=values_fromTriple.getObject().toString(); Triple showInGridTriple=query.selectSingle(pageid,"showInGrid",null); if (showInGridTriple==null) showInGridTriple=query.selectSingle(pageid,"Property:Property_showInGrid",null); if (showInGridTriple!=null) showInGrid=showInGridTriple.getObject().toString(); Triple isLinkTriple=query.selectSingle(pageid,"isLink",null); if (isLinkTriple==null) isLinkTriple=query.selectSingle(pageid,"Property:Property_isLink",null); if (isLinkTriple!=null) isLink=isLinkTriple.getObject().toString(); Triple nullableTriple=query.selectSingle(pageid,"nullable",null); if (nullableTriple==null) nullableTriple=query.selectSingle(pageid,"Property:Property_nullable",null); if (nullableTriple!=null) nullable=nullableTriple.getObject().toString(); Triple topicTriple=query.selectSingle(pageid,"topic",null); if (topicTriple==null) topicTriple=query.selectSingle(pageid,"Property:Property_topic",null); if (topicTriple!=null) topic=topicTriple.getObject().toString(); init(query); } // constructor for Property // >>>{user defined topic code}{Property}{Property} // <<<{user defined topic code}{Property}{Property} } // class Property /** * Manager for Property */ public static class PropertyManager extends TopicBase { public String topicName="Property"; public transient List<Property> mPropertys=new ArrayList<Property>(); public transient Map<String,Property> mPropertyMap=new LinkedHashMap<String,Property>(); /** * get my Properties */ public List<Property> getProperties() { List<Property> result=this.mPropertys; return result; } /** * add a new Property */ public Property add(Property pProperty) { mPropertys.add(pProperty); mPropertyMap.put(pProperty.getPageid(),pProperty); return pProperty; } /** * add a new Property from the given triple */ public Property add(TripleQuery query,Triple pPropertyTriple) { Property lProperty=new Property(query,pPropertyTriple); add(lProperty); return lProperty; } // reinitialize my mProperty map public void reinit() { mPropertyMap.clear(); for (Property lProperty:mPropertys) { mPropertyMap.put(lProperty.getPageid(),lProperty); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static PropertyManager fromJson(String json) { PropertyManager result=JSON.parseObject(json, PropertyManager.class); result.reinit(); return result; } // default constructor public PropertyManager() {} // construct me from the given triple Query query public PropertyManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lPropertyQuery=query.query(null,"isA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } // then the SMW triplestore lPropertyQuery=query.query(null,"Property:IsA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } init(query); } // constructor for Property Manager // >>>{user defined topicmanager code}{Property}{Property} // <<<{user defined topicmanager code}{Property}{Property} } // class Property Manager /** * SMW_Type * an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes */ public static class SMW_Type extends TopicBase { public String pageid; public String type; public String documentation; public String helppage; public String typepage; public String javaType; public String usedByProperties; public String getType() { return type; } public void setType(String pType) { type=pType; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getHelppage() { return helppage; } public void setHelppage(String pHelppage) { helppage=pHelppage; } public String getTypepage() { return typepage; } public void setTypepage(String pTypepage) { typepage=pTypepage; } public String getJavaType() { return javaType; } public void setJavaType(String pJavaType) { javaType=pJavaType; } public String getUsedByProperties() { return usedByProperties; } public void setUsedByProperties(String pUsedByProperties) { usedByProperties=pUsedByProperties; } /** * convert this SMW_Type to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for SMW_Type */ public SMW_Type() {} /** * construct a SMW_Type from the given Triple * @param query - the TripleQuery to get the triples from * @param pSMW_TypeTriple - the triple to construct me from */ public SMW_Type(TripleQuery query,Triple pSMW_TypeTriple) { this(query,pSMW_TypeTriple.getSubject().toString()); } // constructor /** * construct a SMW_Type from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public SMW_Type(TripleQuery query,String pageid) { this.pageid=pageid; Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:SMW_Type_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:SMW_Type_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple helppageTriple=query.selectSingle(pageid,"helppage",null); if (helppageTriple==null) helppageTriple=query.selectSingle(pageid,"Property:SMW_Type_helppage",null); if (helppageTriple!=null) helppage=helppageTriple.getObject().toString(); Triple typepageTriple=query.selectSingle(pageid,"typepage",null); if (typepageTriple==null) typepageTriple=query.selectSingle(pageid,"Property:SMW_Type_typepage",null); if (typepageTriple!=null) typepage=typepageTriple.getObject().toString(); Triple javaTypeTriple=query.selectSingle(pageid,"javaType",null); if (javaTypeTriple==null) javaTypeTriple=query.selectSingle(pageid,"Property:SMW_Type_javaType",null); if (javaTypeTriple!=null) javaType=javaTypeTriple.getObject().toString(); Triple usedByPropertiesTriple=query.selectSingle(pageid,"usedByProperties",null); if (usedByPropertiesTriple==null) usedByPropertiesTriple=query.selectSingle(pageid,"Property:SMW_Type_usedByProperties",null); if (usedByPropertiesTriple!=null) usedByProperties=usedByPropertiesTriple.getObject().toString(); init(query); } // constructor for SMW_Type // >>>{user defined topic code}{SMW_Type}{SMW_Type} // <<<{user defined topic code}{SMW_Type}{SMW_Type} } // class SMW_Type /** * Manager for SMW_Type */ public static class SMW_TypeManager extends TopicBase { public String topicName="SMW_Type"; public transient List<SMW_Type> mSMW_Types=new ArrayList<SMW_Type>(); public transient Map<String,SMW_Type> mSMW_TypeMap=new LinkedHashMap<String,SMW_Type>(); /** * get my SMW_Types */ public List<SMW_Type> getSMW_Types() { List<SMW_Type> result=this.mSMW_Types; return result; } /** * add a new SMW_Type */ public SMW_Type add(SMW_Type pSMW_Type) { mSMW_Types.add(pSMW_Type); mSMW_TypeMap.put(pSMW_Type.getPageid(),pSMW_Type); return pSMW_Type; } /** * add a new SMW_Type from the given triple */ public SMW_Type add(TripleQuery query,Triple pSMW_TypeTriple) { SMW_Type lSMW_Type=new SMW_Type(query,pSMW_TypeTriple); add(lSMW_Type); return lSMW_Type; } // reinitialize my mSMW_Type map public void reinit() { mSMW_TypeMap.clear(); for (SMW_Type lSMW_Type:mSMW_Types) { mSMW_TypeMap.put(lSMW_Type.getPageid(),lSMW_Type); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static SMW_TypeManager fromJson(String json) { SMW_TypeManager result=JSON.parseObject(json, SMW_TypeManager.class); result.reinit(); return result; } // default constructor public SMW_TypeManager() {} // construct me from the given triple Query query public SMW_TypeManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lSMW_TypeQuery=query.query(null,"isA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } // then the SMW triplestore lSMW_TypeQuery=query.query(null,"Property:IsA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } init(query); } // constructor for SMW_Type Manager // >>>{user defined topicmanager code}{SMW_Type}{SMW_Type} // <<<{user defined topicmanager code}{SMW_Type}{SMW_Type} } // class SMW_Type Manager /** * Topic * A Topic is a Concept/Class/Thing/Entity */ public static class Topic extends TopicBase { public String pageid; public String name; public String pluralName; public String icon; public String iconUrl; public String documentation; public String wikiDocumentation; public String defaultstoremode; public String listLimit; public String cargo; public String context; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getPluralName() { return pluralName; } public void setPluralName(String pPluralName) { pluralName=pPluralName; } public String getIcon() { return icon; } public void setIcon(String pIcon) { icon=pIcon; } public String getIconUrl() { return iconUrl; } public void setIconUrl(String pIconUrl) { iconUrl=pIconUrl; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getWikiDocumentation() { return wikiDocumentation; } public void setWikiDocumentation(String pWikiDocumentation) { wikiDocumentation=pWikiDocumentation; } public String getDefaultstoremode() { return defaultstoremode; } public void setDefaultstoremode(String pDefaultstoremode) { defaultstoremode=pDefaultstoremode; } public String getListLimit() { return listLimit; } public void setListLimit(String pListLimit) { listLimit=pListLimit; } public String getCargo() { return cargo; } public void setCargo(String pCargo) { cargo=pCargo; } public String getContext() { return context; } public void setContext(String pContext) { context=pContext; } /** * convert this Topic to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Topic */ public Topic() {} /** * construct a Topic from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicTriple - the triple to construct me from */ public Topic(TripleQuery query,Triple pTopicTriple) { this(query,pTopicTriple.getSubject().toString()); } // constructor /** * construct a Topic from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Topic(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Topic_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple pluralNameTriple=query.selectSingle(pageid,"pluralName",null); if (pluralNameTriple==null) pluralNameTriple=query.selectSingle(pageid,"Property:Topic_pluralName",null); if (pluralNameTriple!=null) pluralName=pluralNameTriple.getObject().toString(); Triple iconTriple=query.selectSingle(pageid,"icon",null); if (iconTriple==null) iconTriple=query.selectSingle(pageid,"Property:Topic_icon",null); if (iconTriple!=null) icon=iconTriple.getObject().toString(); Triple iconUrlTriple=query.selectSingle(pageid,"iconUrl",null); if (iconUrlTriple==null) iconUrlTriple=query.selectSingle(pageid,"Property:Topic_iconUrl",null); if (iconUrlTriple!=null) iconUrl=iconUrlTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Topic_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple wikiDocumentationTriple=query.selectSingle(pageid,"wikiDocumentation",null); if (wikiDocumentationTriple==null) wikiDocumentationTriple=query.selectSingle(pageid,"Property:Topic_wikiDocumentation",null); if (wikiDocumentationTriple!=null) wikiDocumentation=wikiDocumentationTriple.getObject().toString(); Triple defaultstoremodeTriple=query.selectSingle(pageid,"defaultstoremode",null); if (defaultstoremodeTriple==null) defaultstoremodeTriple=query.selectSingle(pageid,"Property:Topic_defaultstoremode",null); if (defaultstoremodeTriple!=null) defaultstoremode=defaultstoremodeTriple.getObject().toString(); Triple listLimitTriple=query.selectSingle(pageid,"listLimit",null); if (listLimitTriple==null) listLimitTriple=query.selectSingle(pageid,"Property:Topic_listLimit",null); if (listLimitTriple!=null) listLimit=listLimitTriple.getObject().toString(); Triple cargoTriple=query.selectSingle(pageid,"cargo",null); if (cargoTriple==null) cargoTriple=query.selectSingle(pageid,"Property:Topic_cargo",null); if (cargoTriple!=null) cargo=cargoTriple.getObject().toString(); Triple contextTriple=query.selectSingle(pageid,"context",null); if (contextTriple==null) contextTriple=query.selectSingle(pageid,"Property:Topic_context",null); if (contextTriple!=null) context=contextTriple.getObject().toString(); init(query); } // constructor for Topic // >>>{user defined topic code}{Topic}{Topic} // <<<{user defined topic code}{Topic}{Topic} } // class Topic /** * Manager for Topic */ public static class TopicManager extends TopicBase { public String topicName="Topic"; public transient List<Topic> mTopics=new ArrayList<Topic>(); public transient Map<String,Topic> mTopicMap=new LinkedHashMap<String,Topic>(); /** * get my Topics */ public List<Topic> getTopics() { List<Topic> result=this.mTopics; return result; } /** * add a new Topic */ public Topic add(Topic pTopic) { mTopics.add(pTopic); mTopicMap.put(pTopic.getPageid(),pTopic); return pTopic; } /** * add a new Topic from the given triple */ public Topic add(TripleQuery query,Triple pTopicTriple) { Topic lTopic=new Topic(query,pTopicTriple); add(lTopic); return lTopic; } // reinitialize my mTopic map public void reinit() { mTopicMap.clear(); for (Topic lTopic:mTopics) { mTopicMap.put(lTopic.getPageid(),lTopic); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicManager fromJson(String json) { TopicManager result=JSON.parseObject(json, TopicManager.class); result.reinit(); return result; } // default constructor public TopicManager() {} // construct me from the given triple Query query public TopicManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicQuery=query.query(null,"isA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } // then the SMW triplestore lTopicQuery=query.query(null,"Property:IsA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } init(query); } // constructor for Topic Manager // >>>{user defined topicmanager code}{Topic}{Topic} // <<<{user defined topicmanager code}{Topic}{Topic} } // class Topic Manager /** * Action * */ public static class Action extends TopicBase { public String pageid; public String servicetype; public String service; public String inputtype; public String input; public String actionpage; public String output; public String getServicetype() { return servicetype; } public void setServicetype(String pServicetype) { servicetype=pServicetype; } public String getService() { return service; } public void setService(String pService) { service=pService; } public String getInputtype() { return inputtype; } public void setInputtype(String pInputtype) { inputtype=pInputtype; } public String getInput() { return input; } public void setInput(String pInput) { input=pInput; } public String getActionpage() { return actionpage; } public void setActionpage(String pActionpage) { actionpage=pActionpage; } public String getOutput() { return output; } public void setOutput(String pOutput) { output=pOutput; } /** * convert this Action to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Action */ public Action() {} /** * construct a Action from the given Triple * @param query - the TripleQuery to get the triples from * @param pActionTriple - the triple to construct me from */ public Action(TripleQuery query,Triple pActionTriple) { this(query,pActionTriple.getSubject().toString()); } // constructor /** * construct a Action from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Action(TripleQuery query,String pageid) { this.pageid=pageid; Triple servicetypeTriple=query.selectSingle(pageid,"servicetype",null); if (servicetypeTriple==null) servicetypeTriple=query.selectSingle(pageid,"Property:Action_servicetype",null); if (servicetypeTriple!=null) servicetype=servicetypeTriple.getObject().toString(); Triple serviceTriple=query.selectSingle(pageid,"service",null); if (serviceTriple==null) serviceTriple=query.selectSingle(pageid,"Property:Action_service",null); if (serviceTriple!=null) service=serviceTriple.getObject().toString(); Triple inputtypeTriple=query.selectSingle(pageid,"inputtype",null); if (inputtypeTriple==null) inputtypeTriple=query.selectSingle(pageid,"Property:Action_inputtype",null); if (inputtypeTriple!=null) inputtype=inputtypeTriple.getObject().toString(); Triple inputTriple=query.selectSingle(pageid,"input",null); if (inputTriple==null) inputTriple=query.selectSingle(pageid,"Property:Action_input",null); if (inputTriple!=null) input=inputTriple.getObject().toString(); Triple actionpageTriple=query.selectSingle(pageid,"actionpage",null); if (actionpageTriple==null) actionpageTriple=query.selectSingle(pageid,"Property:Action_actionpage",null); if (actionpageTriple!=null) actionpage=actionpageTriple.getObject().toString(); Triple outputTriple=query.selectSingle(pageid,"output",null); if (outputTriple==null) outputTriple=query.selectSingle(pageid,"Property:Action_output",null); if (outputTriple!=null) output=outputTriple.getObject().toString(); init(query); } // constructor for Action // >>>{user defined topic code}{Action}{Action} // <<<{user defined topic code}{Action}{Action} } // class Action /** * Manager for Action */ public static class ActionManager extends TopicBase { public String topicName="Action"; public transient List<Action> mActions=new ArrayList<Action>(); public transient Map<String,Action> mActionMap=new LinkedHashMap<String,Action>(); /** * get my Actions */ public List<Action> getActions() { List<Action> result=this.mActions; return result; } /** * add a new Action */ public Action add(Action pAction) { mActions.add(pAction); mActionMap.put(pAction.getPageid(),pAction); return pAction; } /** * add a new Action from the given triple */ public Action add(TripleQuery query,Triple pActionTriple) { Action lAction=new Action(query,pActionTriple); add(lAction); return lAction; } // reinitialize my mAction map public void reinit() { mActionMap.clear(); for (Action lAction:mActions) { mActionMap.put(lAction.getPageid(),lAction); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ActionManager fromJson(String json) { ActionManager result=JSON.parseObject(json, ActionManager.class); result.reinit(); return result; } // default constructor public ActionManager() {} // construct me from the given triple Query query public ActionManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lActionQuery=query.query(null,"isA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } // then the SMW triplestore lActionQuery=query.query(null,"Property:IsA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } init(query); } // constructor for Action Manager // >>>{user defined topicmanager code}{Action}{Action} // <<<{user defined topicmanager code}{Action}{Action} } // class Action Manager /** * TopicLink * A TopicLink links two Concepts */ public static class TopicLink extends TopicBase { public String pageid; public String name; public String source; public String sourceRole; public String sourceMultiple; public String sourceDocumentation; public String target; public String targetRole; public String targetMultiple; public String targetDocumentation; public String masterDetail; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getSource() { return source; } public void setSource(String pSource) { source=pSource; } public String getSourceRole() { return sourceRole; } public void setSourceRole(String pSourceRole) { sourceRole=pSourceRole; } public String getSourceMultiple() { return sourceMultiple; } public void setSourceMultiple(String pSourceMultiple) { sourceMultiple=pSourceMultiple; } public String getSourceDocumentation() { return sourceDocumentation; } public void setSourceDocumentation(String pSourceDocumentation) { sourceDocumentation=pSourceDocumentation; } public String getTarget() { return target; } public void setTarget(String pTarget) { target=pTarget; } public String getTargetRole() { return targetRole; } public void setTargetRole(String pTargetRole) { targetRole=pTargetRole; } public String getTargetMultiple() { return targetMultiple; } public void setTargetMultiple(String pTargetMultiple) { targetMultiple=pTargetMultiple; } public String getTargetDocumentation() { return targetDocumentation; } public void setTargetDocumentation(String pTargetDocumentation) { targetDocumentation=pTargetDocumentation; } public String getMasterDetail() { return masterDetail; } public void setMasterDetail(String pMasterDetail) { masterDetail=pMasterDetail; } /** * convert this TopicLink to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for TopicLink */ public TopicLink() {} /** * construct a TopicLink from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicLinkTriple - the triple to construct me from */ public TopicLink(TripleQuery query,Triple pTopicLinkTriple) { this(query,pTopicLinkTriple.getSubject().toString()); } // constructor /** * construct a TopicLink from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public TopicLink(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:TopicLink_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple sourceTriple=query.selectSingle(pageid,"source",null); if (sourceTriple==null) sourceTriple=query.selectSingle(pageid,"Property:TopicLink_source",null); if (sourceTriple!=null) source=sourceTriple.getObject().toString(); Triple sourceRoleTriple=query.selectSingle(pageid,"sourceRole",null); if (sourceRoleTriple==null) sourceRoleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceRole",null); if (sourceRoleTriple!=null) sourceRole=sourceRoleTriple.getObject().toString(); Triple sourceMultipleTriple=query.selectSingle(pageid,"sourceMultiple",null); if (sourceMultipleTriple==null) sourceMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceMultiple",null); if (sourceMultipleTriple!=null) sourceMultiple=sourceMultipleTriple.getObject().toString(); Triple sourceDocumentationTriple=query.selectSingle(pageid,"sourceDocumentation",null); if (sourceDocumentationTriple==null) sourceDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_sourceDocumentation",null); if (sourceDocumentationTriple!=null) sourceDocumentation=sourceDocumentationTriple.getObject().toString(); Triple targetTriple=query.selectSingle(pageid,"target",null); if (targetTriple==null) targetTriple=query.selectSingle(pageid,"Property:TopicLink_target",null); if (targetTriple!=null) target=targetTriple.getObject().toString(); Triple targetRoleTriple=query.selectSingle(pageid,"targetRole",null); if (targetRoleTriple==null) targetRoleTriple=query.selectSingle(pageid,"Property:TopicLink_targetRole",null); if (targetRoleTriple!=null) targetRole=targetRoleTriple.getObject().toString(); Triple targetMultipleTriple=query.selectSingle(pageid,"targetMultiple",null); if (targetMultipleTriple==null) targetMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_targetMultiple",null); if (targetMultipleTriple!=null) targetMultiple=targetMultipleTriple.getObject().toString(); Triple targetDocumentationTriple=query.selectSingle(pageid,"targetDocumentation",null); if (targetDocumentationTriple==null) targetDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_targetDocumentation",null); if (targetDocumentationTriple!=null) targetDocumentation=targetDocumentationTriple.getObject().toString(); Triple masterDetailTriple=query.selectSingle(pageid,"masterDetail",null); if (masterDetailTriple==null) masterDetailTriple=query.selectSingle(pageid,"Property:TopicLink_masterDetail",null); if (masterDetailTriple!=null) masterDetail=masterDetailTriple.getObject().toString(); init(query); } // constructor for TopicLink // >>>{user defined topic code}{TopicLink}{TopicLink} // <<<{user defined topic code}{TopicLink}{TopicLink} } // class TopicLink /** * Manager for TopicLink */ public static class TopicLinkManager extends TopicBase { public String topicName="TopicLink"; public transient List<TopicLink> mTopicLinks=new ArrayList<TopicLink>(); public transient Map<String,TopicLink> mTopicLinkMap=new LinkedHashMap<String,TopicLink>(); /** * get my TopicLinks */ public List<TopicLink> getTopicLinks() { List<TopicLink> result=this.mTopicLinks; return result; } /** * add a new TopicLink */ public TopicLink add(TopicLink pTopicLink) { mTopicLinks.add(pTopicLink); mTopicLinkMap.put(pTopicLink.getPageid(),pTopicLink); return pTopicLink; } /** * add a new TopicLink from the given triple */ public TopicLink add(TripleQuery query,Triple pTopicLinkTriple) { TopicLink lTopicLink=new TopicLink(query,pTopicLinkTriple); add(lTopicLink); return lTopicLink; } // reinitialize my mTopicLink map public void reinit() { mTopicLinkMap.clear(); for (TopicLink lTopicLink:mTopicLinks) { mTopicLinkMap.put(lTopicLink.getPageid(),lTopicLink); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicLinkManager fromJson(String json) { TopicLinkManager result=JSON.parseObject(json, TopicLinkManager.class); result.reinit(); return result; } // default constructor public TopicLinkManager() {} // construct me from the given triple Query query public TopicLinkManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicLinkQuery=query.query(null,"isA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } // then the SMW triplestore lTopicLinkQuery=query.query(null,"Property:IsA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } init(query); } // constructor for TopicLink Manager // >>>{user defined topicmanager code}{TopicLink}{TopicLink} // <<<{user defined topicmanager code}{TopicLink}{TopicLink} } // class TopicLink Manager } 56dda3bf593001f149819a26db4e5fe44961cba8 Concept:Action 108 131 175 2015-11-06T06:46:52Z Wf 1 created by WikiTask 2015-11-06T06:46:50Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=Action |pluralName=Actions |icon= |iconUrl= |documentation= |wikiDocumentation= |defaultstoremode= |cargo= |context=MetaModel |storemode=property }} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Topic/{{FULLPAGENAME}}|title=edit Action}}<br> {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === === uml === <uml> title Action note as ActionDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as ActionNote end note class Action { Text servicetype Text service Text inputtype Text input Text actionpage Text output } ActionNote .. Action ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Category:Action]] |Actions see also * [[List of Actions]] * [[Help:Action]] * [[Concept:Action]] * [[:Category:Action]] * [[:Template:Action]] * [[:Form:Action]] topic links: }} [[Category:Action]] b456f1253fbb340b3038e3e409e3f2500086f425 Concept:TopicLink/Properties 108 132 176 2015-11-06T06:46:55Z Wf 1 created by WikiTask 2015-11-06T06:46:54Z wikitext text/x-wiki == properties of TopicLink == === [[Property:TopicLink name]] === <pre> {{Property |name=name |documentation=The name of the topic link |type=Special:Types/Text |label=name |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=1 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:TopicLink source]] === <pre> {{Property |name=source |documentation=the source of a topic Link |type=Special:Types/Page |label=source |primaryKey=false |mandatory=true |uploadable=false |size=50 |index=2 |sortPos= |defaultValue= |inputType=dropdown |allowedValues= |topic=Concept:TopicLink |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:TopicLink sourceRole]] === <pre> {{Property |name=sourceRole |documentation= |type=Special:Types/Text |label=sourceRole |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=3 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:TopicLink sourceMultiple]] === <pre> {{Property |name=sourceMultiple |documentation= |type=Special:Types/Boolean |label=sourceMultiple |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=4 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:TopicLink |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:TopicLink sourceDocumentation]] === <pre> {{Property |name=sourceDocumentation |documentation=Documentation for the source Role |type=Special:Types/Text |label=source Doc |primaryKey=false |mandatory=false |uploadable=false |size=300 |index=5 |sortPos= |defaultValue= |inputType=textarea |allowedValues= |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:TopicLink target]] === <pre> {{Property |name=target |documentation= |type=Special:Types/Page |label=target |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=6 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:TopicLink |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:TopicLink targetRole]] === <pre> {{Property |name=targetRole |documentation= |type=Special:Types/Text |label=targetRole |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=7 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:TopicLink targetMultiple]] === <pre> {{Property |name=targetMultiple |documentation= |type=Special:Types/Boolean |label=sourceMultiple |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=8 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:TopicLink |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:TopicLink targetDocumentation]] === <pre> {{Property |name=targetDocumentation |documentation=Documentation for the target Role |type=Special:Types/Text |label=target Doc |primaryKey=false |mandatory=false |uploadable=false |size=300 |index=9 |sortPos= |defaultValue= |inputType=textarea |allowedValues= |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:TopicLink masterDetail]] === <pre> {{Property |name=masterDetail |documentation=should the details be displayed in the same form and template? If no * for a 1:1 link there will be a linking attribute used and that can be selected. * for a 1:n link a link to the list of neighbours will be displayed if yes * for a 1:1 link the details * for a 1:n link |type=Special:Types/Boolean |label=masterDetail |primaryKey=false |mandatory=false |uploadable=false |size= |index=10 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:TopicLink |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> 8c51a947da3f030fec90e4a097e5d8aefa9e0b9b Help:Topic 12 133 177 2015-11-06T06:46:59Z Wf 1 created by WikiTask 2015-11-06T06:46:56Z wikitext text/x-wiki == Help for Topic == {{#ask: [[Topic name::Topic]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} === Documentation === A Topic is a Concept/Class/Thing/Entity === Example Topics === {{#ask: [[Concept:Topic]] }} === Properties === {{#ask: [[Concept:Property]][[Property topic::Concept:Topic]] | ?Property documentation = documentation | ?Property type = type | ?Property name = name | ?Property label = label | ?Property allowedValues = allowedValues | ?Property mandatory = mandatory | ?Property uploadable = uploadable |format=table }} === uml === <uml> title Topic note as TopicDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as TopicNote A Topic is a Concept/Class/Thing/Entity end note class Topic { Text name Text pluralName Page icon URL iconUrl Text documentation Text wikiDocumentation Text defaultstoremode Number listLimit Boolean cargo Page context } TopicNote .. Topic Topic "topic (1)" -- "properties(*)" Property Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> see also * [[List of Topics]] * [[Help:Topic]] * [[Concept:Topic]] * [[:Category:Topic]] * [[:Template:Topic]] * [[:Form:Topic]] topic links: * [[:Category:Property]] [[Category:Topic]] cd3d5f7e776d7ee090d7dde565a0cc5c7989b9db Help:TopicLink 12 134 178 2015-11-06T06:47:03Z Wf 1 created by WikiTask 2015-11-06T06:47:00Z wikitext text/x-wiki == Help for TopicLink == {{#ask: [[Topic name::TopicLink]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} === Documentation === A TopicLink links two [[Concept:Topic]]s === Example TopicLinks === {{#ask: [[Concept:TopicLink]] }} === Properties === {{#ask: [[Concept:Property]][[Property topic::Concept:TopicLink]] | ?Property documentation = documentation | ?Property type = type | ?Property name = name | ?Property label = label | ?Property allowedValues = allowedValues | ?Property mandatory = mandatory | ?Property uploadable = uploadable |format=table }} === uml === <uml> title TopicLink note as TopicLinkDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as TopicLinkNote A TopicLink links two Concepts end note class TopicLink { Text name Page source Text sourceRole Boolean sourceMultiple Text sourceDocumentation Page target Text targetRole Boolean targetMultiple Text targetDocumentation Boolean masterDetail } TopicLinkNote .. TopicLink ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> see also * [[List of TopicLinks]] * [[Help:TopicLink]] * [[Concept:TopicLink]] * [[:Category:TopicLink]] * [[:Template:TopicLink]] * [[:Form:TopicLink]] topic links: [[Category:TopicLink]] 7d821455543b4fac01e47838775f9ca93e752e6b Form:Action 106 135 179 2015-11-06T06:47:06Z Wf 1 created by WikiTask 2015-11-06T06:47:05Z wikitext text/x-wiki <noinclude> This is the {{smartMediaWiki}}-Form for "Action". Create a new Action by entering a new pagename for a Action into the field below. If you enter an existing Action pagename - you will edit the Action with that pagename. {{#forminput:form=Action|values from concept=Action}} </noinclude><includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> <!-- Action --> {{{for template|Action}}} {| class="wikitable" ! colspan='2'| Action |- ! servicetype: <!-- Text servicetype --> | {{{field|servicetype|input type=|property=Action servicetype|size=}}} |- ! service: <!-- Text service --> | {{{field|service|input type=|property=Action service|size=}}} |- ! inputtype: <!-- Text inputtype --> | {{{field|inputtype|input type=|property=Action inputtype|size=}}} |- ! input: <!-- Text input --> | {{{field|input|input type=|property=Action input|size=}}} |- ! actionpage: <!-- Text actionpage --> | {{{field|actionpage|input type=|property=Action actionpage|size=}}} |- ! output: <!-- Text output --> | {{{field|output|input type=|property=Action output|size=}}} |- |} {{{field|storemode|default=|hidden}}} {{{end template}}} <!-- Action --> '''Freitext:''' {{{standard input|free text|rows=10}}} {{{standard input|summary}}} {{{standard input|minor edit}}} {{{standard input|watch}}} {{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}} </includeonly> 3751c825bb31a6e9c2c79c75e31b806a5fe59651 Category:TopicLink 14 136 180 2015-11-06T06:47:10Z Wf 1 created by WikiTask 2015-11-06T06:47:08Z wikitext text/x-wiki __NOTOC__ {{#ask: [[Topic name::TopicLink]] | ?Topic wikiDocumentation= | mainlabel=-}} TopicLinks may be added and edited with the form [[has default form::TopicLink]] * [[List of TopicLinks]] <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> TopicLink description <div class="mw-collapsible-content"> === uml === <uml> title TopicLink note as TopicLinkDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as TopicLinkNote A TopicLink links two Concepts end note class TopicLink { Text name Page source Text sourceRole Boolean sourceMultiple Text sourceDocumentation Page target Text targetRole Boolean targetMultiple Text targetDocumentation Boolean masterDetail } TopicLinkNote .. TopicLink ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> * [[Help:TopicLink]] * [[Concept:TopicLink]] * [[:Template:TopicLink]] * [[:Form:TopicLink]] === Properties === * [[Property:TopicLink name]] * [[Property:TopicLink source]] * [[Property:TopicLink sourceRole]] * [[Property:TopicLink sourceMultiple]] * [[Property:TopicLink sourceDocumentation]] * [[Property:TopicLink target]] * [[Property:TopicLink targetRole]] * [[Property:TopicLink targetMultiple]] * [[Property:TopicLink targetDocumentation]] * [[Property:TopicLink masterDetail]] </div> </div> 7b2ea59c63f0d7d141b6f2693e82a4c2c3792c7e Concept:SMW Type/Java 108 137 181 2015-11-06T06:47:13Z Wf 1 created by WikiTask 2015-11-06T06:47:12Z wikitext text/x-wiki === java code === <source lang='java' id='javacode'>@// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @def static { /** * Base class */ static abstract class TopicBase { /** * initialize */ public void init(TripleQuery query) { } } // TopicBase /** * Context * A Context groups some topics like a Namespace/Package */ public static class Context extends TopicBase { public String pageid; public String name; public String getName() { return name; } public void setName(String pName) { name=pName; } /** * convert this Context to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Context */ public Context() {} /** * construct a Context from the given Triple * @param query - the TripleQuery to get the triples from * @param pContextTriple - the triple to construct me from */ public Context(TripleQuery query,Triple pContextTriple) { this(query,pContextTriple.getSubject().toString()); } // constructor /** * construct a Context from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Context(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Context_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); init(query); } // constructor for Context // >>>{user defined topic code}{Context}{Context} // <<<{user defined topic code}{Context}{Context} } // class Context /** * Manager for Context */ public static class ContextManager extends TopicBase { public String topicName="Context"; public transient List<Context> mContexts=new ArrayList<Context>(); public transient Map<String,Context> mContextMap=new LinkedHashMap<String,Context>(); /** * get my Contexts */ public List<Context> getContexts() { List<Context> result=this.mContexts; return result; } /** * add a new Context */ public Context add(Context pContext) { mContexts.add(pContext); mContextMap.put(pContext.getPageid(),pContext); return pContext; } /** * add a new Context from the given triple */ public Context add(TripleQuery query,Triple pContextTriple) { Context lContext=new Context(query,pContextTriple); add(lContext); return lContext; } // reinitialize my mContext map public void reinit() { mContextMap.clear(); for (Context lContext:mContexts) { mContextMap.put(lContext.getPageid(),lContext); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ContextManager fromJson(String json) { ContextManager result=JSON.parseObject(json, ContextManager.class); result.reinit(); return result; } // default constructor public ContextManager() {} // construct me from the given triple Query query public ContextManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lContextQuery=query.query(null,"isA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } // then the SMW triplestore lContextQuery=query.query(null,"Property:IsA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } init(query); } // constructor for Context Manager // >>>{user defined topicmanager code}{Context}{Context} // <<<{user defined topicmanager code}{Context}{Context} } // class Context Manager /** * Property * a Property is a Feature/Attribute of a Topic */ public static class Property extends TopicBase { public String pageid; public String name; public String label; public String type; public String index; public String sortPos; public String primaryKey; public String mandatory; public String namespace; public String size; public String uploadable; public String defaultValue; public String inputType; public String allowedValues; public String documentation; public String values_from; public String showInGrid; public String isLink; public String nullable; public String topic; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getLabel() { return label; } public void setLabel(String pLabel) { label=pLabel; } public String getType() { return type; } public void setType(String pType) { type=pType; } public String getIndex() { return index; } public void setIndex(String pIndex) { index=pIndex; } public String getSortPos() { return sortPos; } public void setSortPos(String pSortPos) { sortPos=pSortPos; } public String getPrimaryKey() { return primaryKey; } public void setPrimaryKey(String pPrimaryKey) { primaryKey=pPrimaryKey; } public String getMandatory() { return mandatory; } public void setMandatory(String pMandatory) { mandatory=pMandatory; } public String getNamespace() { return namespace; } public void setNamespace(String pNamespace) { namespace=pNamespace; } public String getSize() { return size; } public void setSize(String pSize) { size=pSize; } public String getUploadable() { return uploadable; } public void setUploadable(String pUploadable) { uploadable=pUploadable; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String pDefaultValue) { defaultValue=pDefaultValue; } public String getInputType() { return inputType; } public void setInputType(String pInputType) { inputType=pInputType; } public String getAllowedValues() { return allowedValues; } public void setAllowedValues(String pAllowedValues) { allowedValues=pAllowedValues; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getValues_from() { return values_from; } public void setValues_from(String pValues_from) { values_from=pValues_from; } public String getShowInGrid() { return showInGrid; } public void setShowInGrid(String pShowInGrid) { showInGrid=pShowInGrid; } public String getIsLink() { return isLink; } public void setIsLink(String pIsLink) { isLink=pIsLink; } public String getNullable() { return nullable; } public void setNullable(String pNullable) { nullable=pNullable; } public String getTopic() { return topic; } public void setTopic(String pTopic) { topic=pTopic; } /** * convert this Property to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Property */ public Property() {} /** * construct a Property from the given Triple * @param query - the TripleQuery to get the triples from * @param pPropertyTriple - the triple to construct me from */ public Property(TripleQuery query,Triple pPropertyTriple) { this(query,pPropertyTriple.getSubject().toString()); } // constructor /** * construct a Property from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Property(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Property_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple labelTriple=query.selectSingle(pageid,"label",null); if (labelTriple==null) labelTriple=query.selectSingle(pageid,"Property:Property_label",null); if (labelTriple!=null) label=labelTriple.getObject().toString(); Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:Property_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple indexTriple=query.selectSingle(pageid,"index",null); if (indexTriple==null) indexTriple=query.selectSingle(pageid,"Property:Property_index",null); if (indexTriple!=null) index=indexTriple.getObject().toString(); Triple sortPosTriple=query.selectSingle(pageid,"sortPos",null); if (sortPosTriple==null) sortPosTriple=query.selectSingle(pageid,"Property:Property_sortPos",null); if (sortPosTriple!=null) sortPos=sortPosTriple.getObject().toString(); Triple primaryKeyTriple=query.selectSingle(pageid,"primaryKey",null); if (primaryKeyTriple==null) primaryKeyTriple=query.selectSingle(pageid,"Property:Property_primaryKey",null); if (primaryKeyTriple!=null) primaryKey=primaryKeyTriple.getObject().toString(); Triple mandatoryTriple=query.selectSingle(pageid,"mandatory",null); if (mandatoryTriple==null) mandatoryTriple=query.selectSingle(pageid,"Property:Property_mandatory",null); if (mandatoryTriple!=null) mandatory=mandatoryTriple.getObject().toString(); Triple namespaceTriple=query.selectSingle(pageid,"namespace",null); if (namespaceTriple==null) namespaceTriple=query.selectSingle(pageid,"Property:Property_namespace",null); if (namespaceTriple!=null) namespace=namespaceTriple.getObject().toString(); Triple sizeTriple=query.selectSingle(pageid,"size",null); if (sizeTriple==null) sizeTriple=query.selectSingle(pageid,"Property:Property_size",null); if (sizeTriple!=null) size=sizeTriple.getObject().toString(); Triple uploadableTriple=query.selectSingle(pageid,"uploadable",null); if (uploadableTriple==null) uploadableTriple=query.selectSingle(pageid,"Property:Property_uploadable",null); if (uploadableTriple!=null) uploadable=uploadableTriple.getObject().toString(); Triple defaultValueTriple=query.selectSingle(pageid,"defaultValue",null); if (defaultValueTriple==null) defaultValueTriple=query.selectSingle(pageid,"Property:Property_defaultValue",null); if (defaultValueTriple!=null) defaultValue=defaultValueTriple.getObject().toString(); Triple inputTypeTriple=query.selectSingle(pageid,"inputType",null); if (inputTypeTriple==null) inputTypeTriple=query.selectSingle(pageid,"Property:Property_inputType",null); if (inputTypeTriple!=null) inputType=inputTypeTriple.getObject().toString(); Triple allowedValuesTriple=query.selectSingle(pageid,"allowedValues",null); if (allowedValuesTriple==null) allowedValuesTriple=query.selectSingle(pageid,"Property:Property_allowedValues",null); if (allowedValuesTriple!=null) allowedValues=allowedValuesTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Property_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple values_fromTriple=query.selectSingle(pageid,"values_from",null); if (values_fromTriple==null) values_fromTriple=query.selectSingle(pageid,"Property:Property_values_from",null); if (values_fromTriple!=null) values_from=values_fromTriple.getObject().toString(); Triple showInGridTriple=query.selectSingle(pageid,"showInGrid",null); if (showInGridTriple==null) showInGridTriple=query.selectSingle(pageid,"Property:Property_showInGrid",null); if (showInGridTriple!=null) showInGrid=showInGridTriple.getObject().toString(); Triple isLinkTriple=query.selectSingle(pageid,"isLink",null); if (isLinkTriple==null) isLinkTriple=query.selectSingle(pageid,"Property:Property_isLink",null); if (isLinkTriple!=null) isLink=isLinkTriple.getObject().toString(); Triple nullableTriple=query.selectSingle(pageid,"nullable",null); if (nullableTriple==null) nullableTriple=query.selectSingle(pageid,"Property:Property_nullable",null); if (nullableTriple!=null) nullable=nullableTriple.getObject().toString(); Triple topicTriple=query.selectSingle(pageid,"topic",null); if (topicTriple==null) topicTriple=query.selectSingle(pageid,"Property:Property_topic",null); if (topicTriple!=null) topic=topicTriple.getObject().toString(); init(query); } // constructor for Property // >>>{user defined topic code}{Property}{Property} // <<<{user defined topic code}{Property}{Property} } // class Property /** * Manager for Property */ public static class PropertyManager extends TopicBase { public String topicName="Property"; public transient List<Property> mPropertys=new ArrayList<Property>(); public transient Map<String,Property> mPropertyMap=new LinkedHashMap<String,Property>(); /** * get my Properties */ public List<Property> getProperties() { List<Property> result=this.mPropertys; return result; } /** * add a new Property */ public Property add(Property pProperty) { mPropertys.add(pProperty); mPropertyMap.put(pProperty.getPageid(),pProperty); return pProperty; } /** * add a new Property from the given triple */ public Property add(TripleQuery query,Triple pPropertyTriple) { Property lProperty=new Property(query,pPropertyTriple); add(lProperty); return lProperty; } // reinitialize my mProperty map public void reinit() { mPropertyMap.clear(); for (Property lProperty:mPropertys) { mPropertyMap.put(lProperty.getPageid(),lProperty); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static PropertyManager fromJson(String json) { PropertyManager result=JSON.parseObject(json, PropertyManager.class); result.reinit(); return result; } // default constructor public PropertyManager() {} // construct me from the given triple Query query public PropertyManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lPropertyQuery=query.query(null,"isA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } // then the SMW triplestore lPropertyQuery=query.query(null,"Property:IsA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } init(query); } // constructor for Property Manager // >>>{user defined topicmanager code}{Property}{Property} // <<<{user defined topicmanager code}{Property}{Property} } // class Property Manager /** * SMW_Type * an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes */ public static class SMW_Type extends TopicBase { public String pageid; public String type; public String documentation; public String helppage; public String typepage; public String javaType; public String usedByProperties; public String getType() { return type; } public void setType(String pType) { type=pType; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getHelppage() { return helppage; } public void setHelppage(String pHelppage) { helppage=pHelppage; } public String getTypepage() { return typepage; } public void setTypepage(String pTypepage) { typepage=pTypepage; } public String getJavaType() { return javaType; } public void setJavaType(String pJavaType) { javaType=pJavaType; } public String getUsedByProperties() { return usedByProperties; } public void setUsedByProperties(String pUsedByProperties) { usedByProperties=pUsedByProperties; } /** * convert this SMW_Type to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for SMW_Type */ public SMW_Type() {} /** * construct a SMW_Type from the given Triple * @param query - the TripleQuery to get the triples from * @param pSMW_TypeTriple - the triple to construct me from */ public SMW_Type(TripleQuery query,Triple pSMW_TypeTriple) { this(query,pSMW_TypeTriple.getSubject().toString()); } // constructor /** * construct a SMW_Type from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public SMW_Type(TripleQuery query,String pageid) { this.pageid=pageid; Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:SMW_Type_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:SMW_Type_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple helppageTriple=query.selectSingle(pageid,"helppage",null); if (helppageTriple==null) helppageTriple=query.selectSingle(pageid,"Property:SMW_Type_helppage",null); if (helppageTriple!=null) helppage=helppageTriple.getObject().toString(); Triple typepageTriple=query.selectSingle(pageid,"typepage",null); if (typepageTriple==null) typepageTriple=query.selectSingle(pageid,"Property:SMW_Type_typepage",null); if (typepageTriple!=null) typepage=typepageTriple.getObject().toString(); Triple javaTypeTriple=query.selectSingle(pageid,"javaType",null); if (javaTypeTriple==null) javaTypeTriple=query.selectSingle(pageid,"Property:SMW_Type_javaType",null); if (javaTypeTriple!=null) javaType=javaTypeTriple.getObject().toString(); Triple usedByPropertiesTriple=query.selectSingle(pageid,"usedByProperties",null); if (usedByPropertiesTriple==null) usedByPropertiesTriple=query.selectSingle(pageid,"Property:SMW_Type_usedByProperties",null); if (usedByPropertiesTriple!=null) usedByProperties=usedByPropertiesTriple.getObject().toString(); init(query); } // constructor for SMW_Type // >>>{user defined topic code}{SMW_Type}{SMW_Type} // <<<{user defined topic code}{SMW_Type}{SMW_Type} } // class SMW_Type /** * Manager for SMW_Type */ public static class SMW_TypeManager extends TopicBase { public String topicName="SMW_Type"; public transient List<SMW_Type> mSMW_Types=new ArrayList<SMW_Type>(); public transient Map<String,SMW_Type> mSMW_TypeMap=new LinkedHashMap<String,SMW_Type>(); /** * get my SMW_Types */ public List<SMW_Type> getSMW_Types() { List<SMW_Type> result=this.mSMW_Types; return result; } /** * add a new SMW_Type */ public SMW_Type add(SMW_Type pSMW_Type) { mSMW_Types.add(pSMW_Type); mSMW_TypeMap.put(pSMW_Type.getPageid(),pSMW_Type); return pSMW_Type; } /** * add a new SMW_Type from the given triple */ public SMW_Type add(TripleQuery query,Triple pSMW_TypeTriple) { SMW_Type lSMW_Type=new SMW_Type(query,pSMW_TypeTriple); add(lSMW_Type); return lSMW_Type; } // reinitialize my mSMW_Type map public void reinit() { mSMW_TypeMap.clear(); for (SMW_Type lSMW_Type:mSMW_Types) { mSMW_TypeMap.put(lSMW_Type.getPageid(),lSMW_Type); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static SMW_TypeManager fromJson(String json) { SMW_TypeManager result=JSON.parseObject(json, SMW_TypeManager.class); result.reinit(); return result; } // default constructor public SMW_TypeManager() {} // construct me from the given triple Query query public SMW_TypeManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lSMW_TypeQuery=query.query(null,"isA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } // then the SMW triplestore lSMW_TypeQuery=query.query(null,"Property:IsA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } init(query); } // constructor for SMW_Type Manager // >>>{user defined topicmanager code}{SMW_Type}{SMW_Type} // <<<{user defined topicmanager code}{SMW_Type}{SMW_Type} } // class SMW_Type Manager /** * Topic * A Topic is a Concept/Class/Thing/Entity */ public static class Topic extends TopicBase { public String pageid; public String name; public String pluralName; public String icon; public String iconUrl; public String documentation; public String wikiDocumentation; public String defaultstoremode; public String listLimit; public String cargo; public String context; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getPluralName() { return pluralName; } public void setPluralName(String pPluralName) { pluralName=pPluralName; } public String getIcon() { return icon; } public void setIcon(String pIcon) { icon=pIcon; } public String getIconUrl() { return iconUrl; } public void setIconUrl(String pIconUrl) { iconUrl=pIconUrl; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getWikiDocumentation() { return wikiDocumentation; } public void setWikiDocumentation(String pWikiDocumentation) { wikiDocumentation=pWikiDocumentation; } public String getDefaultstoremode() { return defaultstoremode; } public void setDefaultstoremode(String pDefaultstoremode) { defaultstoremode=pDefaultstoremode; } public String getListLimit() { return listLimit; } public void setListLimit(String pListLimit) { listLimit=pListLimit; } public String getCargo() { return cargo; } public void setCargo(String pCargo) { cargo=pCargo; } public String getContext() { return context; } public void setContext(String pContext) { context=pContext; } /** * convert this Topic to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Topic */ public Topic() {} /** * construct a Topic from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicTriple - the triple to construct me from */ public Topic(TripleQuery query,Triple pTopicTriple) { this(query,pTopicTriple.getSubject().toString()); } // constructor /** * construct a Topic from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Topic(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Topic_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple pluralNameTriple=query.selectSingle(pageid,"pluralName",null); if (pluralNameTriple==null) pluralNameTriple=query.selectSingle(pageid,"Property:Topic_pluralName",null); if (pluralNameTriple!=null) pluralName=pluralNameTriple.getObject().toString(); Triple iconTriple=query.selectSingle(pageid,"icon",null); if (iconTriple==null) iconTriple=query.selectSingle(pageid,"Property:Topic_icon",null); if (iconTriple!=null) icon=iconTriple.getObject().toString(); Triple iconUrlTriple=query.selectSingle(pageid,"iconUrl",null); if (iconUrlTriple==null) iconUrlTriple=query.selectSingle(pageid,"Property:Topic_iconUrl",null); if (iconUrlTriple!=null) iconUrl=iconUrlTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Topic_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple wikiDocumentationTriple=query.selectSingle(pageid,"wikiDocumentation",null); if (wikiDocumentationTriple==null) wikiDocumentationTriple=query.selectSingle(pageid,"Property:Topic_wikiDocumentation",null); if (wikiDocumentationTriple!=null) wikiDocumentation=wikiDocumentationTriple.getObject().toString(); Triple defaultstoremodeTriple=query.selectSingle(pageid,"defaultstoremode",null); if (defaultstoremodeTriple==null) defaultstoremodeTriple=query.selectSingle(pageid,"Property:Topic_defaultstoremode",null); if (defaultstoremodeTriple!=null) defaultstoremode=defaultstoremodeTriple.getObject().toString(); Triple listLimitTriple=query.selectSingle(pageid,"listLimit",null); if (listLimitTriple==null) listLimitTriple=query.selectSingle(pageid,"Property:Topic_listLimit",null); if (listLimitTriple!=null) listLimit=listLimitTriple.getObject().toString(); Triple cargoTriple=query.selectSingle(pageid,"cargo",null); if (cargoTriple==null) cargoTriple=query.selectSingle(pageid,"Property:Topic_cargo",null); if (cargoTriple!=null) cargo=cargoTriple.getObject().toString(); Triple contextTriple=query.selectSingle(pageid,"context",null); if (contextTriple==null) contextTriple=query.selectSingle(pageid,"Property:Topic_context",null); if (contextTriple!=null) context=contextTriple.getObject().toString(); init(query); } // constructor for Topic // >>>{user defined topic code}{Topic}{Topic} // <<<{user defined topic code}{Topic}{Topic} } // class Topic /** * Manager for Topic */ public static class TopicManager extends TopicBase { public String topicName="Topic"; public transient List<Topic> mTopics=new ArrayList<Topic>(); public transient Map<String,Topic> mTopicMap=new LinkedHashMap<String,Topic>(); /** * get my Topics */ public List<Topic> getTopics() { List<Topic> result=this.mTopics; return result; } /** * add a new Topic */ public Topic add(Topic pTopic) { mTopics.add(pTopic); mTopicMap.put(pTopic.getPageid(),pTopic); return pTopic; } /** * add a new Topic from the given triple */ public Topic add(TripleQuery query,Triple pTopicTriple) { Topic lTopic=new Topic(query,pTopicTriple); add(lTopic); return lTopic; } // reinitialize my mTopic map public void reinit() { mTopicMap.clear(); for (Topic lTopic:mTopics) { mTopicMap.put(lTopic.getPageid(),lTopic); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicManager fromJson(String json) { TopicManager result=JSON.parseObject(json, TopicManager.class); result.reinit(); return result; } // default constructor public TopicManager() {} // construct me from the given triple Query query public TopicManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicQuery=query.query(null,"isA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } // then the SMW triplestore lTopicQuery=query.query(null,"Property:IsA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } init(query); } // constructor for Topic Manager // >>>{user defined topicmanager code}{Topic}{Topic} // <<<{user defined topicmanager code}{Topic}{Topic} } // class Topic Manager /** * Action * */ public static class Action extends TopicBase { public String pageid; public String servicetype; public String service; public String inputtype; public String input; public String actionpage; public String output; public String getServicetype() { return servicetype; } public void setServicetype(String pServicetype) { servicetype=pServicetype; } public String getService() { return service; } public void setService(String pService) { service=pService; } public String getInputtype() { return inputtype; } public void setInputtype(String pInputtype) { inputtype=pInputtype; } public String getInput() { return input; } public void setInput(String pInput) { input=pInput; } public String getActionpage() { return actionpage; } public void setActionpage(String pActionpage) { actionpage=pActionpage; } public String getOutput() { return output; } public void setOutput(String pOutput) { output=pOutput; } /** * convert this Action to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Action */ public Action() {} /** * construct a Action from the given Triple * @param query - the TripleQuery to get the triples from * @param pActionTriple - the triple to construct me from */ public Action(TripleQuery query,Triple pActionTriple) { this(query,pActionTriple.getSubject().toString()); } // constructor /** * construct a Action from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Action(TripleQuery query,String pageid) { this.pageid=pageid; Triple servicetypeTriple=query.selectSingle(pageid,"servicetype",null); if (servicetypeTriple==null) servicetypeTriple=query.selectSingle(pageid,"Property:Action_servicetype",null); if (servicetypeTriple!=null) servicetype=servicetypeTriple.getObject().toString(); Triple serviceTriple=query.selectSingle(pageid,"service",null); if (serviceTriple==null) serviceTriple=query.selectSingle(pageid,"Property:Action_service",null); if (serviceTriple!=null) service=serviceTriple.getObject().toString(); Triple inputtypeTriple=query.selectSingle(pageid,"inputtype",null); if (inputtypeTriple==null) inputtypeTriple=query.selectSingle(pageid,"Property:Action_inputtype",null); if (inputtypeTriple!=null) inputtype=inputtypeTriple.getObject().toString(); Triple inputTriple=query.selectSingle(pageid,"input",null); if (inputTriple==null) inputTriple=query.selectSingle(pageid,"Property:Action_input",null); if (inputTriple!=null) input=inputTriple.getObject().toString(); Triple actionpageTriple=query.selectSingle(pageid,"actionpage",null); if (actionpageTriple==null) actionpageTriple=query.selectSingle(pageid,"Property:Action_actionpage",null); if (actionpageTriple!=null) actionpage=actionpageTriple.getObject().toString(); Triple outputTriple=query.selectSingle(pageid,"output",null); if (outputTriple==null) outputTriple=query.selectSingle(pageid,"Property:Action_output",null); if (outputTriple!=null) output=outputTriple.getObject().toString(); init(query); } // constructor for Action // >>>{user defined topic code}{Action}{Action} // <<<{user defined topic code}{Action}{Action} } // class Action /** * Manager for Action */ public static class ActionManager extends TopicBase { public String topicName="Action"; public transient List<Action> mActions=new ArrayList<Action>(); public transient Map<String,Action> mActionMap=new LinkedHashMap<String,Action>(); /** * get my Actions */ public List<Action> getActions() { List<Action> result=this.mActions; return result; } /** * add a new Action */ public Action add(Action pAction) { mActions.add(pAction); mActionMap.put(pAction.getPageid(),pAction); return pAction; } /** * add a new Action from the given triple */ public Action add(TripleQuery query,Triple pActionTriple) { Action lAction=new Action(query,pActionTriple); add(lAction); return lAction; } // reinitialize my mAction map public void reinit() { mActionMap.clear(); for (Action lAction:mActions) { mActionMap.put(lAction.getPageid(),lAction); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ActionManager fromJson(String json) { ActionManager result=JSON.parseObject(json, ActionManager.class); result.reinit(); return result; } // default constructor public ActionManager() {} // construct me from the given triple Query query public ActionManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lActionQuery=query.query(null,"isA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } // then the SMW triplestore lActionQuery=query.query(null,"Property:IsA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } init(query); } // constructor for Action Manager // >>>{user defined topicmanager code}{Action}{Action} // <<<{user defined topicmanager code}{Action}{Action} } // class Action Manager /** * TopicLink * A TopicLink links two Concepts */ public static class TopicLink extends TopicBase { public String pageid; public String name; public String source; public String sourceRole; public String sourceMultiple; public String sourceDocumentation; public String target; public String targetRole; public String targetMultiple; public String targetDocumentation; public String masterDetail; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getSource() { return source; } public void setSource(String pSource) { source=pSource; } public String getSourceRole() { return sourceRole; } public void setSourceRole(String pSourceRole) { sourceRole=pSourceRole; } public String getSourceMultiple() { return sourceMultiple; } public void setSourceMultiple(String pSourceMultiple) { sourceMultiple=pSourceMultiple; } public String getSourceDocumentation() { return sourceDocumentation; } public void setSourceDocumentation(String pSourceDocumentation) { sourceDocumentation=pSourceDocumentation; } public String getTarget() { return target; } public void setTarget(String pTarget) { target=pTarget; } public String getTargetRole() { return targetRole; } public void setTargetRole(String pTargetRole) { targetRole=pTargetRole; } public String getTargetMultiple() { return targetMultiple; } public void setTargetMultiple(String pTargetMultiple) { targetMultiple=pTargetMultiple; } public String getTargetDocumentation() { return targetDocumentation; } public void setTargetDocumentation(String pTargetDocumentation) { targetDocumentation=pTargetDocumentation; } public String getMasterDetail() { return masterDetail; } public void setMasterDetail(String pMasterDetail) { masterDetail=pMasterDetail; } /** * convert this TopicLink to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for TopicLink */ public TopicLink() {} /** * construct a TopicLink from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicLinkTriple - the triple to construct me from */ public TopicLink(TripleQuery query,Triple pTopicLinkTriple) { this(query,pTopicLinkTriple.getSubject().toString()); } // constructor /** * construct a TopicLink from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public TopicLink(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:TopicLink_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple sourceTriple=query.selectSingle(pageid,"source",null); if (sourceTriple==null) sourceTriple=query.selectSingle(pageid,"Property:TopicLink_source",null); if (sourceTriple!=null) source=sourceTriple.getObject().toString(); Triple sourceRoleTriple=query.selectSingle(pageid,"sourceRole",null); if (sourceRoleTriple==null) sourceRoleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceRole",null); if (sourceRoleTriple!=null) sourceRole=sourceRoleTriple.getObject().toString(); Triple sourceMultipleTriple=query.selectSingle(pageid,"sourceMultiple",null); if (sourceMultipleTriple==null) sourceMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceMultiple",null); if (sourceMultipleTriple!=null) sourceMultiple=sourceMultipleTriple.getObject().toString(); Triple sourceDocumentationTriple=query.selectSingle(pageid,"sourceDocumentation",null); if (sourceDocumentationTriple==null) sourceDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_sourceDocumentation",null); if (sourceDocumentationTriple!=null) sourceDocumentation=sourceDocumentationTriple.getObject().toString(); Triple targetTriple=query.selectSingle(pageid,"target",null); if (targetTriple==null) targetTriple=query.selectSingle(pageid,"Property:TopicLink_target",null); if (targetTriple!=null) target=targetTriple.getObject().toString(); Triple targetRoleTriple=query.selectSingle(pageid,"targetRole",null); if (targetRoleTriple==null) targetRoleTriple=query.selectSingle(pageid,"Property:TopicLink_targetRole",null); if (targetRoleTriple!=null) targetRole=targetRoleTriple.getObject().toString(); Triple targetMultipleTriple=query.selectSingle(pageid,"targetMultiple",null); if (targetMultipleTriple==null) targetMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_targetMultiple",null); if (targetMultipleTriple!=null) targetMultiple=targetMultipleTriple.getObject().toString(); Triple targetDocumentationTriple=query.selectSingle(pageid,"targetDocumentation",null); if (targetDocumentationTriple==null) targetDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_targetDocumentation",null); if (targetDocumentationTriple!=null) targetDocumentation=targetDocumentationTriple.getObject().toString(); Triple masterDetailTriple=query.selectSingle(pageid,"masterDetail",null); if (masterDetailTriple==null) masterDetailTriple=query.selectSingle(pageid,"Property:TopicLink_masterDetail",null); if (masterDetailTriple!=null) masterDetail=masterDetailTriple.getObject().toString(); init(query); } // constructor for TopicLink // >>>{user defined topic code}{TopicLink}{TopicLink} // <<<{user defined topic code}{TopicLink}{TopicLink} } // class TopicLink /** * Manager for TopicLink */ public static class TopicLinkManager extends TopicBase { public String topicName="TopicLink"; public transient List<TopicLink> mTopicLinks=new ArrayList<TopicLink>(); public transient Map<String,TopicLink> mTopicLinkMap=new LinkedHashMap<String,TopicLink>(); /** * get my TopicLinks */ public List<TopicLink> getTopicLinks() { List<TopicLink> result=this.mTopicLinks; return result; } /** * add a new TopicLink */ public TopicLink add(TopicLink pTopicLink) { mTopicLinks.add(pTopicLink); mTopicLinkMap.put(pTopicLink.getPageid(),pTopicLink); return pTopicLink; } /** * add a new TopicLink from the given triple */ public TopicLink add(TripleQuery query,Triple pTopicLinkTriple) { TopicLink lTopicLink=new TopicLink(query,pTopicLinkTriple); add(lTopicLink); return lTopicLink; } // reinitialize my mTopicLink map public void reinit() { mTopicLinkMap.clear(); for (TopicLink lTopicLink:mTopicLinks) { mTopicLinkMap.put(lTopicLink.getPageid(),lTopicLink); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicLinkManager fromJson(String json) { TopicLinkManager result=JSON.parseObject(json, TopicLinkManager.class); result.reinit(); return result; } // default constructor public TopicLinkManager() {} // construct me from the given triple Query query public TopicLinkManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicLinkQuery=query.query(null,"isA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } // then the SMW triplestore lTopicLinkQuery=query.query(null,"Property:IsA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } init(query); } // constructor for TopicLink Manager // >>>{user defined topicmanager code}{TopicLink}{TopicLink} // <<<{user defined topicmanager code}{TopicLink}{TopicLink} } // class TopicLink Manager } 56dda3bf593001f149819a26db4e5fe44961cba8 Template:SMW Type 10 138 182 2015-11-06T06:47:20Z Wf 1 created by WikiTask 2015-11-06T06:47:19Z wikitext text/x-wiki <noinclude> <!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> This is the template {{Link|target=Template:SMW_Type|title=SMW_Type}}. It belongs to the concept/topic {{Link|target=:Concept:SMW_Type}}<br> You may find examples for the use of this template via the {{Link|target=List of SMW_Types}}. === Usage === ==== storemode subobject ==== <pre>{{SMW_Type |type= |documentation= |helppage= |typepage= |javaType= |usedByProperties= |storemode=subobject }} </pre> ==== storemode property ==== <pre>{{SMW_Type |type= |documentation= |helppage= |typepage= |javaType= |usedByProperties= |storemode=property }} </pre> ==== storemode none ==== <pre>{{SMW_Type |type= |documentation= |helppage= |typepage= |javaType= |usedByProperties= |storemode=none }} </pre> ==== viewmode tableheader ==== <pre>{{SMW_Type |type= |documentation= |helppage= |typepage= |javaType= |usedByProperties= |viewmode=tableheader }} </pre> ==== viewmode tablerow ==== <pre>{{SMW_Type |type= |documentation= |helppage= |typepage= |javaType= |usedByProperties= |viewmode=tablerow }} </pre> ==== viewmode tablefooter ==== <pre>{{SMW_Type |type= |documentation= |helppage= |typepage= |javaType= |usedByProperties= |viewmode=tablefooter }} </pre> ==== viewmode labelfield ==== <pre>{{SMW_Type |type= |documentation= |helppage= |typepage= |javaType= |usedByProperties= |viewmode=labelfield }} </pre> === Source === <source lang='html4strict'> {{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA SMW_Type<br>|}} {{#if:{{{?type|}}}|"{{{?type}}}" is type of it <br>|}} {{#if:{{{?documentation|}}}|"{{{?documentation}}}" is documentation of it <br>|}} {{#if:{{{?helppage|}}}|"{{{?helppage}}}" is helppage of it <br>|}} {{#if:{{{?typepage|}}}|"{{{?typepage}}}" is typepage of it <br>|}} {{#if:{{{?javaType|}}}|"{{{?javaType}}}" is javaType of it <br>|}} {{#if:{{{?usedByProperties|}}}|"{{{?usedByProperties}}}" is usedByProperties of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |subobject={{#subobject:- |isA=SMW_Type |SMW_Type type={{{type|}}} |SMW_Type documentation={{{documentation|}}} |SMW_Type helppage={{{helppage|}}} |SMW_Type typepage={{{typepage|}}} |SMW_Type javaType={{{javaType|}}} |SMW_Type usedByProperties={{{usedByProperties|}}} }} |{{#set: |isA=SMW_Type |SMW_Type type={{{type|}}} |SMW_Type documentation={{{documentation|}}} |SMW_Type helppage={{{helppage|}}} |SMW_Type typepage={{{typepage|}}} |SMW_Type javaType={{{javaType|}}} |SMW_Type usedByProperties={{{usedByProperties|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !type!!documentation!!helppage!!typepage!!javaType!!usedByProperties {{!}}- |tablerow= {{!}}{{{type|}}}{{!}}{{!}}{{{documentation|}}}{{!}}{{!}}{{{helppage|}}}{{!}}{{!}}{{{typepage|}}}{{!}}{{!}}{{{javaType|}}}{{!}}{{!}}{{{usedByProperties|}}} {{!}}- |tablefooter={{!}}} |labelfield= type={{#if:{{{type|}}}|{{{type|}}}|}}<br>documentation={{#if:{{{documentation|}}}|{{{documentation|}}}|}}<br>helppage={{#if:{{{helppage|}}}|{{{helppage|}}}|}}<br>typepage={{#if:{{{typepage|}}}|[[{{{typepage|}}}]]|}}<br>javaType={{#if:{{{javaType|}}}|{{{javaType|}}}|}}<br>usedByProperties={{#if:{{{usedByProperties|}}}|[[{{{usedByProperties|}}}]]|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}SMW_Type {{!}}- !type {{!}}&nbsp;{{#if:{{{type|}}}|{{{type|}}}|}} {{!}}- !type {{!}}&nbsp;{{#if:{{{documentation|}}}|{{{documentation|}}}|}} {{!}}- !type {{!}}&nbsp;{{#if:{{{helppage|}}}|{{{helppage|}}}|}} {{!}}- !typepage {{!}}&nbsp;{{#if:{{{typepage|}}}|[[{{{typepage|}}}]]|}} {{!}}- !java Type {{!}}&nbsp;{{#if:{{{javaType|}}}|{{{javaType|}}}|}} {{!}}- !usedByProperties {{!}}&nbsp;{{#if:{{{usedByProperties|}}}|[[{{{usedByProperties|}}}]]|}} {{!}}- {{!}}} }} }} </source> Click on "Edit" to edit the Source of this Template. </noinclude><includeonly>{{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA SMW_Type<br>|}} {{#if:{{{?type|}}}|"{{{?type}}}" is type of it <br>|}} {{#if:{{{?documentation|}}}|"{{{?documentation}}}" is documentation of it <br>|}} {{#if:{{{?helppage|}}}|"{{{?helppage}}}" is helppage of it <br>|}} {{#if:{{{?typepage|}}}|"{{{?typepage}}}" is typepage of it <br>|}} {{#if:{{{?javaType|}}}|"{{{?javaType}}}" is javaType of it <br>|}} {{#if:{{{?usedByProperties|}}}|"{{{?usedByProperties}}}" is usedByProperties of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |subobject={{#subobject:- |isA=SMW_Type |SMW_Type type={{{type|}}} |SMW_Type documentation={{{documentation|}}} |SMW_Type helppage={{{helppage|}}} |SMW_Type typepage={{{typepage|}}} |SMW_Type javaType={{{javaType|}}} |SMW_Type usedByProperties={{{usedByProperties|}}} }} |{{#set: |isA=SMW_Type |SMW_Type type={{{type|}}} |SMW_Type documentation={{{documentation|}}} |SMW_Type helppage={{{helppage|}}} |SMW_Type typepage={{{typepage|}}} |SMW_Type javaType={{{javaType|}}} |SMW_Type usedByProperties={{{usedByProperties|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !type!!documentation!!helppage!!typepage!!javaType!!usedByProperties {{!}}- |tablerow= {{!}}{{{type|}}}{{!}}{{!}}{{{documentation|}}}{{!}}{{!}}{{{helppage|}}}{{!}}{{!}}{{{typepage|}}}{{!}}{{!}}{{{javaType|}}}{{!}}{{!}}{{{usedByProperties|}}} {{!}}- |tablefooter={{!}}} |labelfield= type={{#if:{{{type|}}}|{{{type|}}}|}}<br>documentation={{#if:{{{documentation|}}}|{{{documentation|}}}|}}<br>helppage={{#if:{{{helppage|}}}|{{{helppage|}}}|}}<br>typepage={{#if:{{{typepage|}}}|[[{{{typepage|}}}]]|}}<br>javaType={{#if:{{{javaType|}}}|{{{javaType|}}}|}}<br>usedByProperties={{#if:{{{usedByProperties|}}}|[[{{{usedByProperties|}}}]]|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}SMW_Type {{!}}- !type {{!}}&nbsp;{{#if:{{{type|}}}|{{{type|}}}|}} {{!}}- !type {{!}}&nbsp;{{#if:{{{documentation|}}}|{{{documentation|}}}|}} {{!}}- !type {{!}}&nbsp;{{#if:{{{helppage|}}}|{{{helppage|}}}|}} {{!}}- !typepage {{!}}&nbsp;{{#if:{{{typepage|}}}|[[{{{typepage|}}}]]|}} {{!}}- !java Type {{!}}&nbsp;{{#if:{{{javaType|}}}|{{{javaType|}}}|}} {{!}}- !usedByProperties {{!}}&nbsp;{{#if:{{{usedByProperties|}}}|[[{{{usedByProperties|}}}]]|}} {{!}}- {{!}}} }} }} </includeonly> b4f25bdeca84da5c45e2c2e9ec0118c04a7ce33c Concept:Property/Java 108 139 183 2015-11-06T06:47:23Z Wf 1 created by WikiTask 2015-11-06T06:47:22Z wikitext text/x-wiki === java code === <source lang='java' id='javacode'>@// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @def static { /** * Base class */ static abstract class TopicBase { /** * initialize */ public void init(TripleQuery query) { } } // TopicBase /** * Context * A Context groups some topics like a Namespace/Package */ public static class Context extends TopicBase { public String pageid; public String name; public String getName() { return name; } public void setName(String pName) { name=pName; } /** * convert this Context to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Context */ public Context() {} /** * construct a Context from the given Triple * @param query - the TripleQuery to get the triples from * @param pContextTriple - the triple to construct me from */ public Context(TripleQuery query,Triple pContextTriple) { this(query,pContextTriple.getSubject().toString()); } // constructor /** * construct a Context from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Context(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Context_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); init(query); } // constructor for Context // >>>{user defined topic code}{Context}{Context} // <<<{user defined topic code}{Context}{Context} } // class Context /** * Manager for Context */ public static class ContextManager extends TopicBase { public String topicName="Context"; public transient List<Context> mContexts=new ArrayList<Context>(); public transient Map<String,Context> mContextMap=new LinkedHashMap<String,Context>(); /** * get my Contexts */ public List<Context> getContexts() { List<Context> result=this.mContexts; return result; } /** * add a new Context */ public Context add(Context pContext) { mContexts.add(pContext); mContextMap.put(pContext.getPageid(),pContext); return pContext; } /** * add a new Context from the given triple */ public Context add(TripleQuery query,Triple pContextTriple) { Context lContext=new Context(query,pContextTriple); add(lContext); return lContext; } // reinitialize my mContext map public void reinit() { mContextMap.clear(); for (Context lContext:mContexts) { mContextMap.put(lContext.getPageid(),lContext); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ContextManager fromJson(String json) { ContextManager result=JSON.parseObject(json, ContextManager.class); result.reinit(); return result; } // default constructor public ContextManager() {} // construct me from the given triple Query query public ContextManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lContextQuery=query.query(null,"isA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } // then the SMW triplestore lContextQuery=query.query(null,"Property:IsA","Context"); for (Triple lContextTriple:lContextQuery.getTriples()) { add(query,lContextTriple); } init(query); } // constructor for Context Manager // >>>{user defined topicmanager code}{Context}{Context} // <<<{user defined topicmanager code}{Context}{Context} } // class Context Manager /** * Property * a Property is a Feature/Attribute of a Topic */ public static class Property extends TopicBase { public String pageid; public String name; public String label; public String type; public String index; public String sortPos; public String primaryKey; public String mandatory; public String namespace; public String size; public String uploadable; public String defaultValue; public String inputType; public String allowedValues; public String documentation; public String values_from; public String showInGrid; public String isLink; public String nullable; public String topic; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getLabel() { return label; } public void setLabel(String pLabel) { label=pLabel; } public String getType() { return type; } public void setType(String pType) { type=pType; } public String getIndex() { return index; } public void setIndex(String pIndex) { index=pIndex; } public String getSortPos() { return sortPos; } public void setSortPos(String pSortPos) { sortPos=pSortPos; } public String getPrimaryKey() { return primaryKey; } public void setPrimaryKey(String pPrimaryKey) { primaryKey=pPrimaryKey; } public String getMandatory() { return mandatory; } public void setMandatory(String pMandatory) { mandatory=pMandatory; } public String getNamespace() { return namespace; } public void setNamespace(String pNamespace) { namespace=pNamespace; } public String getSize() { return size; } public void setSize(String pSize) { size=pSize; } public String getUploadable() { return uploadable; } public void setUploadable(String pUploadable) { uploadable=pUploadable; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String pDefaultValue) { defaultValue=pDefaultValue; } public String getInputType() { return inputType; } public void setInputType(String pInputType) { inputType=pInputType; } public String getAllowedValues() { return allowedValues; } public void setAllowedValues(String pAllowedValues) { allowedValues=pAllowedValues; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getValues_from() { return values_from; } public void setValues_from(String pValues_from) { values_from=pValues_from; } public String getShowInGrid() { return showInGrid; } public void setShowInGrid(String pShowInGrid) { showInGrid=pShowInGrid; } public String getIsLink() { return isLink; } public void setIsLink(String pIsLink) { isLink=pIsLink; } public String getNullable() { return nullable; } public void setNullable(String pNullable) { nullable=pNullable; } public String getTopic() { return topic; } public void setTopic(String pTopic) { topic=pTopic; } /** * convert this Property to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Property */ public Property() {} /** * construct a Property from the given Triple * @param query - the TripleQuery to get the triples from * @param pPropertyTriple - the triple to construct me from */ public Property(TripleQuery query,Triple pPropertyTriple) { this(query,pPropertyTriple.getSubject().toString()); } // constructor /** * construct a Property from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Property(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Property_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple labelTriple=query.selectSingle(pageid,"label",null); if (labelTriple==null) labelTriple=query.selectSingle(pageid,"Property:Property_label",null); if (labelTriple!=null) label=labelTriple.getObject().toString(); Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:Property_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple indexTriple=query.selectSingle(pageid,"index",null); if (indexTriple==null) indexTriple=query.selectSingle(pageid,"Property:Property_index",null); if (indexTriple!=null) index=indexTriple.getObject().toString(); Triple sortPosTriple=query.selectSingle(pageid,"sortPos",null); if (sortPosTriple==null) sortPosTriple=query.selectSingle(pageid,"Property:Property_sortPos",null); if (sortPosTriple!=null) sortPos=sortPosTriple.getObject().toString(); Triple primaryKeyTriple=query.selectSingle(pageid,"primaryKey",null); if (primaryKeyTriple==null) primaryKeyTriple=query.selectSingle(pageid,"Property:Property_primaryKey",null); if (primaryKeyTriple!=null) primaryKey=primaryKeyTriple.getObject().toString(); Triple mandatoryTriple=query.selectSingle(pageid,"mandatory",null); if (mandatoryTriple==null) mandatoryTriple=query.selectSingle(pageid,"Property:Property_mandatory",null); if (mandatoryTriple!=null) mandatory=mandatoryTriple.getObject().toString(); Triple namespaceTriple=query.selectSingle(pageid,"namespace",null); if (namespaceTriple==null) namespaceTriple=query.selectSingle(pageid,"Property:Property_namespace",null); if (namespaceTriple!=null) namespace=namespaceTriple.getObject().toString(); Triple sizeTriple=query.selectSingle(pageid,"size",null); if (sizeTriple==null) sizeTriple=query.selectSingle(pageid,"Property:Property_size",null); if (sizeTriple!=null) size=sizeTriple.getObject().toString(); Triple uploadableTriple=query.selectSingle(pageid,"uploadable",null); if (uploadableTriple==null) uploadableTriple=query.selectSingle(pageid,"Property:Property_uploadable",null); if (uploadableTriple!=null) uploadable=uploadableTriple.getObject().toString(); Triple defaultValueTriple=query.selectSingle(pageid,"defaultValue",null); if (defaultValueTriple==null) defaultValueTriple=query.selectSingle(pageid,"Property:Property_defaultValue",null); if (defaultValueTriple!=null) defaultValue=defaultValueTriple.getObject().toString(); Triple inputTypeTriple=query.selectSingle(pageid,"inputType",null); if (inputTypeTriple==null) inputTypeTriple=query.selectSingle(pageid,"Property:Property_inputType",null); if (inputTypeTriple!=null) inputType=inputTypeTriple.getObject().toString(); Triple allowedValuesTriple=query.selectSingle(pageid,"allowedValues",null); if (allowedValuesTriple==null) allowedValuesTriple=query.selectSingle(pageid,"Property:Property_allowedValues",null); if (allowedValuesTriple!=null) allowedValues=allowedValuesTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Property_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple values_fromTriple=query.selectSingle(pageid,"values_from",null); if (values_fromTriple==null) values_fromTriple=query.selectSingle(pageid,"Property:Property_values_from",null); if (values_fromTriple!=null) values_from=values_fromTriple.getObject().toString(); Triple showInGridTriple=query.selectSingle(pageid,"showInGrid",null); if (showInGridTriple==null) showInGridTriple=query.selectSingle(pageid,"Property:Property_showInGrid",null); if (showInGridTriple!=null) showInGrid=showInGridTriple.getObject().toString(); Triple isLinkTriple=query.selectSingle(pageid,"isLink",null); if (isLinkTriple==null) isLinkTriple=query.selectSingle(pageid,"Property:Property_isLink",null); if (isLinkTriple!=null) isLink=isLinkTriple.getObject().toString(); Triple nullableTriple=query.selectSingle(pageid,"nullable",null); if (nullableTriple==null) nullableTriple=query.selectSingle(pageid,"Property:Property_nullable",null); if (nullableTriple!=null) nullable=nullableTriple.getObject().toString(); Triple topicTriple=query.selectSingle(pageid,"topic",null); if (topicTriple==null) topicTriple=query.selectSingle(pageid,"Property:Property_topic",null); if (topicTriple!=null) topic=topicTriple.getObject().toString(); init(query); } // constructor for Property // >>>{user defined topic code}{Property}{Property} // <<<{user defined topic code}{Property}{Property} } // class Property /** * Manager for Property */ public static class PropertyManager extends TopicBase { public String topicName="Property"; public transient List<Property> mPropertys=new ArrayList<Property>(); public transient Map<String,Property> mPropertyMap=new LinkedHashMap<String,Property>(); /** * get my Properties */ public List<Property> getProperties() { List<Property> result=this.mPropertys; return result; } /** * add a new Property */ public Property add(Property pProperty) { mPropertys.add(pProperty); mPropertyMap.put(pProperty.getPageid(),pProperty); return pProperty; } /** * add a new Property from the given triple */ public Property add(TripleQuery query,Triple pPropertyTriple) { Property lProperty=new Property(query,pPropertyTriple); add(lProperty); return lProperty; } // reinitialize my mProperty map public void reinit() { mPropertyMap.clear(); for (Property lProperty:mPropertys) { mPropertyMap.put(lProperty.getPageid(),lProperty); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static PropertyManager fromJson(String json) { PropertyManager result=JSON.parseObject(json, PropertyManager.class); result.reinit(); return result; } // default constructor public PropertyManager() {} // construct me from the given triple Query query public PropertyManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lPropertyQuery=query.query(null,"isA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } // then the SMW triplestore lPropertyQuery=query.query(null,"Property:IsA","Property"); for (Triple lPropertyTriple:lPropertyQuery.getTriples()) { add(query,lPropertyTriple); } init(query); } // constructor for Property Manager // >>>{user defined topicmanager code}{Property}{Property} // <<<{user defined topicmanager code}{Property}{Property} } // class Property Manager /** * SMW_Type * an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes */ public static class SMW_Type extends TopicBase { public String pageid; public String type; public String documentation; public String helppage; public String typepage; public String javaType; public String usedByProperties; public String getType() { return type; } public void setType(String pType) { type=pType; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getHelppage() { return helppage; } public void setHelppage(String pHelppage) { helppage=pHelppage; } public String getTypepage() { return typepage; } public void setTypepage(String pTypepage) { typepage=pTypepage; } public String getJavaType() { return javaType; } public void setJavaType(String pJavaType) { javaType=pJavaType; } public String getUsedByProperties() { return usedByProperties; } public void setUsedByProperties(String pUsedByProperties) { usedByProperties=pUsedByProperties; } /** * convert this SMW_Type to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for SMW_Type */ public SMW_Type() {} /** * construct a SMW_Type from the given Triple * @param query - the TripleQuery to get the triples from * @param pSMW_TypeTriple - the triple to construct me from */ public SMW_Type(TripleQuery query,Triple pSMW_TypeTriple) { this(query,pSMW_TypeTriple.getSubject().toString()); } // constructor /** * construct a SMW_Type from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public SMW_Type(TripleQuery query,String pageid) { this.pageid=pageid; Triple typeTriple=query.selectSingle(pageid,"type",null); if (typeTriple==null) typeTriple=query.selectSingle(pageid,"Property:SMW_Type_type",null); if (typeTriple!=null) type=typeTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:SMW_Type_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple helppageTriple=query.selectSingle(pageid,"helppage",null); if (helppageTriple==null) helppageTriple=query.selectSingle(pageid,"Property:SMW_Type_helppage",null); if (helppageTriple!=null) helppage=helppageTriple.getObject().toString(); Triple typepageTriple=query.selectSingle(pageid,"typepage",null); if (typepageTriple==null) typepageTriple=query.selectSingle(pageid,"Property:SMW_Type_typepage",null); if (typepageTriple!=null) typepage=typepageTriple.getObject().toString(); Triple javaTypeTriple=query.selectSingle(pageid,"javaType",null); if (javaTypeTriple==null) javaTypeTriple=query.selectSingle(pageid,"Property:SMW_Type_javaType",null); if (javaTypeTriple!=null) javaType=javaTypeTriple.getObject().toString(); Triple usedByPropertiesTriple=query.selectSingle(pageid,"usedByProperties",null); if (usedByPropertiesTriple==null) usedByPropertiesTriple=query.selectSingle(pageid,"Property:SMW_Type_usedByProperties",null); if (usedByPropertiesTriple!=null) usedByProperties=usedByPropertiesTriple.getObject().toString(); init(query); } // constructor for SMW_Type // >>>{user defined topic code}{SMW_Type}{SMW_Type} // <<<{user defined topic code}{SMW_Type}{SMW_Type} } // class SMW_Type /** * Manager for SMW_Type */ public static class SMW_TypeManager extends TopicBase { public String topicName="SMW_Type"; public transient List<SMW_Type> mSMW_Types=new ArrayList<SMW_Type>(); public transient Map<String,SMW_Type> mSMW_TypeMap=new LinkedHashMap<String,SMW_Type>(); /** * get my SMW_Types */ public List<SMW_Type> getSMW_Types() { List<SMW_Type> result=this.mSMW_Types; return result; } /** * add a new SMW_Type */ public SMW_Type add(SMW_Type pSMW_Type) { mSMW_Types.add(pSMW_Type); mSMW_TypeMap.put(pSMW_Type.getPageid(),pSMW_Type); return pSMW_Type; } /** * add a new SMW_Type from the given triple */ public SMW_Type add(TripleQuery query,Triple pSMW_TypeTriple) { SMW_Type lSMW_Type=new SMW_Type(query,pSMW_TypeTriple); add(lSMW_Type); return lSMW_Type; } // reinitialize my mSMW_Type map public void reinit() { mSMW_TypeMap.clear(); for (SMW_Type lSMW_Type:mSMW_Types) { mSMW_TypeMap.put(lSMW_Type.getPageid(),lSMW_Type); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static SMW_TypeManager fromJson(String json) { SMW_TypeManager result=JSON.parseObject(json, SMW_TypeManager.class); result.reinit(); return result; } // default constructor public SMW_TypeManager() {} // construct me from the given triple Query query public SMW_TypeManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lSMW_TypeQuery=query.query(null,"isA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } // then the SMW triplestore lSMW_TypeQuery=query.query(null,"Property:IsA","SMW_Type"); for (Triple lSMW_TypeTriple:lSMW_TypeQuery.getTriples()) { add(query,lSMW_TypeTriple); } init(query); } // constructor for SMW_Type Manager // >>>{user defined topicmanager code}{SMW_Type}{SMW_Type} // <<<{user defined topicmanager code}{SMW_Type}{SMW_Type} } // class SMW_Type Manager /** * Topic * A Topic is a Concept/Class/Thing/Entity */ public static class Topic extends TopicBase { public String pageid; public String name; public String pluralName; public String icon; public String iconUrl; public String documentation; public String wikiDocumentation; public String defaultstoremode; public String listLimit; public String cargo; public String context; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getPluralName() { return pluralName; } public void setPluralName(String pPluralName) { pluralName=pPluralName; } public String getIcon() { return icon; } public void setIcon(String pIcon) { icon=pIcon; } public String getIconUrl() { return iconUrl; } public void setIconUrl(String pIconUrl) { iconUrl=pIconUrl; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation=pDocumentation; } public String getWikiDocumentation() { return wikiDocumentation; } public void setWikiDocumentation(String pWikiDocumentation) { wikiDocumentation=pWikiDocumentation; } public String getDefaultstoremode() { return defaultstoremode; } public void setDefaultstoremode(String pDefaultstoremode) { defaultstoremode=pDefaultstoremode; } public String getListLimit() { return listLimit; } public void setListLimit(String pListLimit) { listLimit=pListLimit; } public String getCargo() { return cargo; } public void setCargo(String pCargo) { cargo=pCargo; } public String getContext() { return context; } public void setContext(String pContext) { context=pContext; } /** * convert this Topic to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Topic */ public Topic() {} /** * construct a Topic from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicTriple - the triple to construct me from */ public Topic(TripleQuery query,Triple pTopicTriple) { this(query,pTopicTriple.getSubject().toString()); } // constructor /** * construct a Topic from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Topic(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:Topic_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple pluralNameTriple=query.selectSingle(pageid,"pluralName",null); if (pluralNameTriple==null) pluralNameTriple=query.selectSingle(pageid,"Property:Topic_pluralName",null); if (pluralNameTriple!=null) pluralName=pluralNameTriple.getObject().toString(); Triple iconTriple=query.selectSingle(pageid,"icon",null); if (iconTriple==null) iconTriple=query.selectSingle(pageid,"Property:Topic_icon",null); if (iconTriple!=null) icon=iconTriple.getObject().toString(); Triple iconUrlTriple=query.selectSingle(pageid,"iconUrl",null); if (iconUrlTriple==null) iconUrlTriple=query.selectSingle(pageid,"Property:Topic_iconUrl",null); if (iconUrlTriple!=null) iconUrl=iconUrlTriple.getObject().toString(); Triple documentationTriple=query.selectSingle(pageid,"documentation",null); if (documentationTriple==null) documentationTriple=query.selectSingle(pageid,"Property:Topic_documentation",null); if (documentationTriple!=null) documentation=documentationTriple.getObject().toString(); Triple wikiDocumentationTriple=query.selectSingle(pageid,"wikiDocumentation",null); if (wikiDocumentationTriple==null) wikiDocumentationTriple=query.selectSingle(pageid,"Property:Topic_wikiDocumentation",null); if (wikiDocumentationTriple!=null) wikiDocumentation=wikiDocumentationTriple.getObject().toString(); Triple defaultstoremodeTriple=query.selectSingle(pageid,"defaultstoremode",null); if (defaultstoremodeTriple==null) defaultstoremodeTriple=query.selectSingle(pageid,"Property:Topic_defaultstoremode",null); if (defaultstoremodeTriple!=null) defaultstoremode=defaultstoremodeTriple.getObject().toString(); Triple listLimitTriple=query.selectSingle(pageid,"listLimit",null); if (listLimitTriple==null) listLimitTriple=query.selectSingle(pageid,"Property:Topic_listLimit",null); if (listLimitTriple!=null) listLimit=listLimitTriple.getObject().toString(); Triple cargoTriple=query.selectSingle(pageid,"cargo",null); if (cargoTriple==null) cargoTriple=query.selectSingle(pageid,"Property:Topic_cargo",null); if (cargoTriple!=null) cargo=cargoTriple.getObject().toString(); Triple contextTriple=query.selectSingle(pageid,"context",null); if (contextTriple==null) contextTriple=query.selectSingle(pageid,"Property:Topic_context",null); if (contextTriple!=null) context=contextTriple.getObject().toString(); init(query); } // constructor for Topic // >>>{user defined topic code}{Topic}{Topic} // <<<{user defined topic code}{Topic}{Topic} } // class Topic /** * Manager for Topic */ public static class TopicManager extends TopicBase { public String topicName="Topic"; public transient List<Topic> mTopics=new ArrayList<Topic>(); public transient Map<String,Topic> mTopicMap=new LinkedHashMap<String,Topic>(); /** * get my Topics */ public List<Topic> getTopics() { List<Topic> result=this.mTopics; return result; } /** * add a new Topic */ public Topic add(Topic pTopic) { mTopics.add(pTopic); mTopicMap.put(pTopic.getPageid(),pTopic); return pTopic; } /** * add a new Topic from the given triple */ public Topic add(TripleQuery query,Triple pTopicTriple) { Topic lTopic=new Topic(query,pTopicTriple); add(lTopic); return lTopic; } // reinitialize my mTopic map public void reinit() { mTopicMap.clear(); for (Topic lTopic:mTopics) { mTopicMap.put(lTopic.getPageid(),lTopic); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicManager fromJson(String json) { TopicManager result=JSON.parseObject(json, TopicManager.class); result.reinit(); return result; } // default constructor public TopicManager() {} // construct me from the given triple Query query public TopicManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicQuery=query.query(null,"isA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } // then the SMW triplestore lTopicQuery=query.query(null,"Property:IsA","Topic"); for (Triple lTopicTriple:lTopicQuery.getTriples()) { add(query,lTopicTriple); } init(query); } // constructor for Topic Manager // >>>{user defined topicmanager code}{Topic}{Topic} // <<<{user defined topicmanager code}{Topic}{Topic} } // class Topic Manager /** * Action * */ public static class Action extends TopicBase { public String pageid; public String servicetype; public String service; public String inputtype; public String input; public String actionpage; public String output; public String getServicetype() { return servicetype; } public void setServicetype(String pServicetype) { servicetype=pServicetype; } public String getService() { return service; } public void setService(String pService) { service=pService; } public String getInputtype() { return inputtype; } public void setInputtype(String pInputtype) { inputtype=pInputtype; } public String getInput() { return input; } public void setInput(String pInput) { input=pInput; } public String getActionpage() { return actionpage; } public void setActionpage(String pActionpage) { actionpage=pActionpage; } public String getOutput() { return output; } public void setOutput(String pOutput) { output=pOutput; } /** * convert this Action to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Action */ public Action() {} /** * construct a Action from the given Triple * @param query - the TripleQuery to get the triples from * @param pActionTriple - the triple to construct me from */ public Action(TripleQuery query,Triple pActionTriple) { this(query,pActionTriple.getSubject().toString()); } // constructor /** * construct a Action from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public Action(TripleQuery query,String pageid) { this.pageid=pageid; Triple servicetypeTriple=query.selectSingle(pageid,"servicetype",null); if (servicetypeTriple==null) servicetypeTriple=query.selectSingle(pageid,"Property:Action_servicetype",null); if (servicetypeTriple!=null) servicetype=servicetypeTriple.getObject().toString(); Triple serviceTriple=query.selectSingle(pageid,"service",null); if (serviceTriple==null) serviceTriple=query.selectSingle(pageid,"Property:Action_service",null); if (serviceTriple!=null) service=serviceTriple.getObject().toString(); Triple inputtypeTriple=query.selectSingle(pageid,"inputtype",null); if (inputtypeTriple==null) inputtypeTriple=query.selectSingle(pageid,"Property:Action_inputtype",null); if (inputtypeTriple!=null) inputtype=inputtypeTriple.getObject().toString(); Triple inputTriple=query.selectSingle(pageid,"input",null); if (inputTriple==null) inputTriple=query.selectSingle(pageid,"Property:Action_input",null); if (inputTriple!=null) input=inputTriple.getObject().toString(); Triple actionpageTriple=query.selectSingle(pageid,"actionpage",null); if (actionpageTriple==null) actionpageTriple=query.selectSingle(pageid,"Property:Action_actionpage",null); if (actionpageTriple!=null) actionpage=actionpageTriple.getObject().toString(); Triple outputTriple=query.selectSingle(pageid,"output",null); if (outputTriple==null) outputTriple=query.selectSingle(pageid,"Property:Action_output",null); if (outputTriple!=null) output=outputTriple.getObject().toString(); init(query); } // constructor for Action // >>>{user defined topic code}{Action}{Action} // <<<{user defined topic code}{Action}{Action} } // class Action /** * Manager for Action */ public static class ActionManager extends TopicBase { public String topicName="Action"; public transient List<Action> mActions=new ArrayList<Action>(); public transient Map<String,Action> mActionMap=new LinkedHashMap<String,Action>(); /** * get my Actions */ public List<Action> getActions() { List<Action> result=this.mActions; return result; } /** * add a new Action */ public Action add(Action pAction) { mActions.add(pAction); mActionMap.put(pAction.getPageid(),pAction); return pAction; } /** * add a new Action from the given triple */ public Action add(TripleQuery query,Triple pActionTriple) { Action lAction=new Action(query,pActionTriple); add(lAction); return lAction; } // reinitialize my mAction map public void reinit() { mActionMap.clear(); for (Action lAction:mActions) { mActionMap.put(lAction.getPageid(),lAction); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ActionManager fromJson(String json) { ActionManager result=JSON.parseObject(json, ActionManager.class); result.reinit(); return result; } // default constructor public ActionManager() {} // construct me from the given triple Query query public ActionManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lActionQuery=query.query(null,"isA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } // then the SMW triplestore lActionQuery=query.query(null,"Property:IsA","Action"); for (Triple lActionTriple:lActionQuery.getTriples()) { add(query,lActionTriple); } init(query); } // constructor for Action Manager // >>>{user defined topicmanager code}{Action}{Action} // <<<{user defined topicmanager code}{Action}{Action} } // class Action Manager /** * TopicLink * A TopicLink links two Concepts */ public static class TopicLink extends TopicBase { public String pageid; public String name; public String source; public String sourceRole; public String sourceMultiple; public String sourceDocumentation; public String target; public String targetRole; public String targetMultiple; public String targetDocumentation; public String masterDetail; public String getName() { return name; } public void setName(String pName) { name=pName; } public String getSource() { return source; } public void setSource(String pSource) { source=pSource; } public String getSourceRole() { return sourceRole; } public void setSourceRole(String pSourceRole) { sourceRole=pSourceRole; } public String getSourceMultiple() { return sourceMultiple; } public void setSourceMultiple(String pSourceMultiple) { sourceMultiple=pSourceMultiple; } public String getSourceDocumentation() { return sourceDocumentation; } public void setSourceDocumentation(String pSourceDocumentation) { sourceDocumentation=pSourceDocumentation; } public String getTarget() { return target; } public void setTarget(String pTarget) { target=pTarget; } public String getTargetRole() { return targetRole; } public void setTargetRole(String pTargetRole) { targetRole=pTargetRole; } public String getTargetMultiple() { return targetMultiple; } public void setTargetMultiple(String pTargetMultiple) { targetMultiple=pTargetMultiple; } public String getTargetDocumentation() { return targetDocumentation; } public void setTargetDocumentation(String pTargetDocumentation) { targetDocumentation=pTargetDocumentation; } public String getMasterDetail() { return masterDetail; } public void setMasterDetail(String pMasterDetail) { masterDetail=pMasterDetail; } /** * convert this TopicLink to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for TopicLink */ public TopicLink() {} /** * construct a TopicLink from the given Triple * @param query - the TripleQuery to get the triples from * @param pTopicLinkTriple - the triple to construct me from */ public TopicLink(TripleQuery query,Triple pTopicLinkTriple) { this(query,pTopicLinkTriple.getSubject().toString()); } // constructor /** * construct a TopicLink from the given pageId * @param query - the TripleQuery to get the triples from * @param pageid - pageid */ public TopicLink(TripleQuery query,String pageid) { this.pageid=pageid; Triple nameTriple=query.selectSingle(pageid,"name",null); if (nameTriple==null) nameTriple=query.selectSingle(pageid,"Property:TopicLink_name",null); if (nameTriple!=null) name=nameTriple.getObject().toString(); Triple sourceTriple=query.selectSingle(pageid,"source",null); if (sourceTriple==null) sourceTriple=query.selectSingle(pageid,"Property:TopicLink_source",null); if (sourceTriple!=null) source=sourceTriple.getObject().toString(); Triple sourceRoleTriple=query.selectSingle(pageid,"sourceRole",null); if (sourceRoleTriple==null) sourceRoleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceRole",null); if (sourceRoleTriple!=null) sourceRole=sourceRoleTriple.getObject().toString(); Triple sourceMultipleTriple=query.selectSingle(pageid,"sourceMultiple",null); if (sourceMultipleTriple==null) sourceMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_sourceMultiple",null); if (sourceMultipleTriple!=null) sourceMultiple=sourceMultipleTriple.getObject().toString(); Triple sourceDocumentationTriple=query.selectSingle(pageid,"sourceDocumentation",null); if (sourceDocumentationTriple==null) sourceDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_sourceDocumentation",null); if (sourceDocumentationTriple!=null) sourceDocumentation=sourceDocumentationTriple.getObject().toString(); Triple targetTriple=query.selectSingle(pageid,"target",null); if (targetTriple==null) targetTriple=query.selectSingle(pageid,"Property:TopicLink_target",null); if (targetTriple!=null) target=targetTriple.getObject().toString(); Triple targetRoleTriple=query.selectSingle(pageid,"targetRole",null); if (targetRoleTriple==null) targetRoleTriple=query.selectSingle(pageid,"Property:TopicLink_targetRole",null); if (targetRoleTriple!=null) targetRole=targetRoleTriple.getObject().toString(); Triple targetMultipleTriple=query.selectSingle(pageid,"targetMultiple",null); if (targetMultipleTriple==null) targetMultipleTriple=query.selectSingle(pageid,"Property:TopicLink_targetMultiple",null); if (targetMultipleTriple!=null) targetMultiple=targetMultipleTriple.getObject().toString(); Triple targetDocumentationTriple=query.selectSingle(pageid,"targetDocumentation",null); if (targetDocumentationTriple==null) targetDocumentationTriple=query.selectSingle(pageid,"Property:TopicLink_targetDocumentation",null); if (targetDocumentationTriple!=null) targetDocumentation=targetDocumentationTriple.getObject().toString(); Triple masterDetailTriple=query.selectSingle(pageid,"masterDetail",null); if (masterDetailTriple==null) masterDetailTriple=query.selectSingle(pageid,"Property:TopicLink_masterDetail",null); if (masterDetailTriple!=null) masterDetail=masterDetailTriple.getObject().toString(); init(query); } // constructor for TopicLink // >>>{user defined topic code}{TopicLink}{TopicLink} // <<<{user defined topic code}{TopicLink}{TopicLink} } // class TopicLink /** * Manager for TopicLink */ public static class TopicLinkManager extends TopicBase { public String topicName="TopicLink"; public transient List<TopicLink> mTopicLinks=new ArrayList<TopicLink>(); public transient Map<String,TopicLink> mTopicLinkMap=new LinkedHashMap<String,TopicLink>(); /** * get my TopicLinks */ public List<TopicLink> getTopicLinks() { List<TopicLink> result=this.mTopicLinks; return result; } /** * add a new TopicLink */ public TopicLink add(TopicLink pTopicLink) { mTopicLinks.add(pTopicLink); mTopicLinkMap.put(pTopicLink.getPageid(),pTopicLink); return pTopicLink; } /** * add a new TopicLink from the given triple */ public TopicLink add(TripleQuery query,Triple pTopicLinkTriple) { TopicLink lTopicLink=new TopicLink(query,pTopicLinkTriple); add(lTopicLink); return lTopicLink; } // reinitialize my mTopicLink map public void reinit() { mTopicLinkMap.clear(); for (TopicLink lTopicLink:mTopicLinks) { mTopicLinkMap.put(lTopicLink.getPageid(),lTopicLink); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static TopicLinkManager fromJson(String json) { TopicLinkManager result=JSON.parseObject(json, TopicLinkManager.class); result.reinit(); return result; } // default constructor public TopicLinkManager() {} // construct me from the given triple Query query public TopicLinkManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicLinkQuery=query.query(null,"isA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } // then the SMW triplestore lTopicLinkQuery=query.query(null,"Property:IsA","TopicLink"); for (Triple lTopicLinkTriple:lTopicLinkQuery.getTriples()) { add(query,lTopicLinkTriple); } init(query); } // constructor for TopicLink Manager // >>>{user defined topicmanager code}{TopicLink}{TopicLink} // <<<{user defined topicmanager code}{TopicLink}{TopicLink} } // class TopicLink Manager } 56dda3bf593001f149819a26db4e5fe44961cba8 Concept:Property/Properties 108 140 184 2015-11-06T06:47:26Z Wf 1 created by WikiTask 2015-11-06T06:47:25Z wikitext text/x-wiki == properties of Property == === [[Property:Property name]] === <pre> {{Property |name=name |documentation=The name of the property |type=Special:Types/Text |label=name |primaryKey=true |mandatory=true |uploadable=false |size=50 |index=1 |sortPos=1 |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property label]] === <pre> {{Property |name=label |documentation=The label to be shown when in a form |type=Special:Types/Text |label=label |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=2 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property type]] === <pre> {{Property |name=type |documentation=The type of a Property |type=Special:Types/Page |label=type |primaryKey=false |mandatory=false |uploadable=false |size= |index=3 |sortPos= |defaultValue=Text |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property index]] === <pre> {{Property |name=index |documentation=A positive number that specifies at which position of a Topic the given property should show. The first property to show has the index 1 each following property has an index that is +1 of the previous. |type=Special:Types/Number |label=index |primaryKey=false |mandatory=false |uploadable=false |size= |index=4 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property sortPos]] === <pre> {{Property |name=sortPos |documentation=If none empty >0 this is the position in the sort clause of this property. This is used when displaying list of the topic as the default sort order and it is used for selecting topics . E.g. Sortpos 1 for attribute lastname and sortpos 2 for attribute firstname leads to sort by lastname,firstname |type=Special:Types/Number |label=sortPos |primaryKey=false |mandatory=false |uploadable=false |size=3 |index=5 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property primaryKey]] === <pre> {{Property |name=primaryKey |documentation=is this property a primary key of it's topic? |type=Special:Types/Boolean |label=primary key |primaryKey=false |mandatory=false |uploadable=false |size=4 |index=6 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property mandatory]] === <pre> {{Property |name=mandatory |documentation=Specifies that this field must be filled in by the user. Note: mandatory should not be used in conjunction with hidden. Use of both in any field will cause the mandatory check on any field to fail when the form is saved. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag |type=Special:Types/Boolean |label=mandatory |primaryKey=false |mandatory=false |uploadable=false |size=4 |index=7 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property namespace]] === <pre> {{Property |name=namespace |documentation=namespace prefix |type=Special:Types/Text |label=namespace |primaryKey=false |mandatory=false |uploadable=false |size=20 |index=8 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property size]] === <pre> {{Property |name=size |documentation=the display size of the field for the property |type=Special:Types/Number |label=size |primaryKey=false |mandatory=false |uploadable=false |size=3 |index=9 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property uploadable]] === <pre> {{Property |name=uploadable |documentation=Specifies that a link should be placed next to this field, that opens a popup window to let the user upload a file; see 'Uploading files', below. See * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Uploading_files The type of the target property needs to be Page for this to work |type=Special:Types/Boolean |label=uploadable |primaryKey=false |mandatory=false |uploadable=false |size=4 |index=10 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property defaultValue]] === <pre> {{Property |name=defaultValue |documentation=default value - Specifies a default value for this field. For date-related fields, default=now will set the value to the current date and possibly time. For text fields, default=current user will set the value to the username of the user adding this page. For the checkbox input type, default=yes will check the checkbox by default. (The 'checkboxes' input type, on the other hand, like the 'listbox' type, requires specifying the actual values, like default=Value A, Value C.) You can also include templates, parser functions, and magic words within the 'default=' value. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag (default) |type=Special:Types/Code |label=default |primaryKey=false |mandatory=false |uploadable=false |size=80 |index=11 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Code]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property inputType]] === <pre> {{Property |name=inputType |documentation=see * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>input type - Specifies the type of input this field will have in the form. If a field corresponds to an SMW property or Cargo field, the form will usually have the correct input type by default; otherwise the default is text. If the corresponding SMW property, or Cargo field, cannot be automatically determined, you can use the parameter 'property', or the parameters 'cargo table' and 'cargo field', to manually specify it (see below). The allowed set of input types is different for every semantic property type; see below for the full list of options. * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Allowed_input_types_for_data_types * http://www.mediawiki.org/wiki/Extension:Semantic_Forms_Inputs |type=Special:Types/Text |label=inputType |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=12 |sortPos= |defaultValue= |inputType=dropdown |allowedValues=text, combobox, dropdown, textarea, tree, datetime, datepicker, timepicker, datetimepicker, menuselect,two listboxes, datecheck, regexp, radiobutton, googlemaps |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property allowedValues]] === <pre> {{Property |name=allowedValues |documentation=There are two ways to specified allowed Values: # https://semantic-mediawiki.org/wiki/Help:Special_property_Allows_value. <br>Use [[Property:Allows_value]] to see which values are allowed for certain properties # http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>values=possible values - Specifies a set of either possible values or autocompletion values (depending on the input type) that this field can have, overriding whatever set of values may have been set from the Semantic MediaWiki property. This set of values is separated by commas by default, but the delimiter can be modified using the delimiter= parameter. If you specify any values method number 2 will be used here which might override any allowed Values specified with method number 1. |type=Special:Types/Text |label=allowedValues |primaryKey=false |mandatory=false |uploadable=false |size=50 |index=13 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property documentation]] === <pre> {{Property |name=documentation |documentation=The documentation for a property |type=Special:Types/Text |label=documentation |primaryKey=false |mandatory=false |uploadable=false |size=500 |index=14 |sortPos= |defaultValue= |inputType=textarea |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property values_from]] === <pre> {{Property |name=values_from |documentation=Specifies where to get the possible values to be displayed in a form from see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * values from property=property name - Similar to values=, but gets its values from the the set of all values that a certain SMW property points to. * values from category=category name - Similar to values=, but gets its values from the names of all pages belonging to a specific category. * values from concept=concept name - Similar to values=, but gets its values from the names of all pages belonging to a specific concept. * values from namespace=namespace name - Similar to values=, but gets its values from the names of all pages belonging to a specific namespace. (To get values from the main namespace, use 'Main' for the namespace name, or just leave it blank.) * values from url=URL identifier - Used only for autocompletion. Specifies that autocompletion should be based on the values retrieved from an outside URL; see Autocompleting on outside values for how to do this. * values from external data=variable name - Used for autocompletion. You need to have theExternal Data extension installed to be able to use this parameter. It specifies that autocompletion should be based on the data retrieved from an outside source. A large number of data sources are supported, including web APIs, regular wiki pages, files on the local server, databases and LDAP directories. See Autocompletion using External Data. |type=Special:Types/Code |label=values from |primaryKey=false |mandatory=false |uploadable=false |size=200 |index=15 |sortPos= |defaultValue= |inputType=textarea |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Code]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property showInGrid]] === <pre> {{Property |name=showInGrid |documentation=I am true if this property is displayed in the default list of properties for my topic as a column |type=Special:Types/Boolean |label=showInGrid |primaryKey=false |mandatory=false |uploadable=false |size= |index=16 |sortPos= |defaultValue=true |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property isLink]] === <pre> {{Property |name=isLink |documentation=true if this Property is derived form a Link. It will not be exported to SiDIF separately and automatically be added by the Property Generator |type=Special:Types/Boolean |label=isLink |primaryKey=false |mandatory=false |uploadable=false |size= |index=17 |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property nullable]] === <pre> {{Property |name=nullable |documentation=should nullvalues be allowed and value set to NULL when empty? |type=Special:Types/Boolean |label=allow nulls? |primaryKey=false |mandatory=false |uploadable=false |size= |index=18 |sortPos= |defaultValue=false |inputType= |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Property topic]] === <pre> {{Property |name=topic |documentation= |type=Special:Types/Page |label=topic |primaryKey= |mandatory= |uploadable= |size= |index= |sortPos= |defaultValue= |inputType=dropdown |allowedValues= |topic=Concept:Property |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> 767cc75f9c3d95a6febf84b174aa210f3ae85dda Template:Property 10 141 185 2015-11-06T06:47:29Z Wf 1 created by WikiTask 2015-11-06T06:47:28Z wikitext text/x-wiki <noinclude> <!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> This is the template {{Link|target=Template:Property|title=Property}}. It belongs to the concept/topic {{Link|target=:Concept:Property}}<br> You may find examples for the use of this template via the {{Link|target=List of Properties}}. === Usage === ==== storemode subobject ==== <pre>{{Property |name= |label= |type= |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType= |allowedValues= |documentation= |values_from= |showInGrid= |isLink= |nullable= |topic= |storemode=subobject }} </pre> ==== storemode property ==== <pre>{{Property |name= |label= |type= |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType= |allowedValues= |documentation= |values_from= |showInGrid= |isLink= |nullable= |topic= |storemode=property }} </pre> ==== storemode none ==== <pre>{{Property |name= |label= |type= |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType= |allowedValues= |documentation= |values_from= |showInGrid= |isLink= |nullable= |topic= |storemode=none }} </pre> ==== viewmode tableheader ==== <pre>{{Property |name= |label= |type= |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType= |allowedValues= |documentation= |values_from= |showInGrid= |isLink= |nullable= |topic= |viewmode=tableheader }} </pre> ==== viewmode tablerow ==== <pre>{{Property |name= |label= |type= |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType= |allowedValues= |documentation= |values_from= |showInGrid= |isLink= |nullable= |topic= |viewmode=tablerow }} </pre> ==== viewmode tablefooter ==== <pre>{{Property |name= |label= |type= |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType= |allowedValues= |documentation= |values_from= |showInGrid= |isLink= |nullable= |topic= |viewmode=tablefooter }} </pre> ==== viewmode labelfield ==== <pre>{{Property |name= |label= |type= |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType= |allowedValues= |documentation= |values_from= |showInGrid= |isLink= |nullable= |topic= |viewmode=labelfield }} </pre> === Source === <source lang='html4strict'> {{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Property<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} {{#if:{{{?label|}}}|"{{{?label}}}" is label of it <br>|}} {{#if:{{{?type|}}}|"{{{?type}}}" is type of it <br>|}} {{#if:{{{?index|}}}|"{{{?index}}}" is index of it <br>|}} {{#if:{{{?sortPos|}}}|"{{{?sortPos}}}" is sortPos of it <br>|}} {{#if:{{{?primaryKey|}}}|"{{{?primaryKey}}}" is primaryKey of it <br>|}} {{#if:{{{?mandatory|}}}|"{{{?mandatory}}}" is mandatory of it <br>|}} {{#if:{{{?namespace|}}}|"{{{?namespace}}}" is namespace of it <br>|}} {{#if:{{{?size|}}}|"{{{?size}}}" is size of it <br>|}} {{#if:{{{?uploadable|}}}|"{{{?uploadable}}}" is uploadable of it <br>|}} {{#if:{{{?defaultValue|}}}|"{{{?defaultValue}}}" is defaultValue of it <br>|}} {{#if:{{{?inputType|}}}|"{{{?inputType}}}" is inputType of it <br>|}} {{#if:{{{?allowedValues|}}}|"{{{?allowedValues}}}" is allowedValues of it <br>|}} {{#if:{{{?documentation|}}}|"{{{?documentation}}}" is documentation of it <br>|}} {{#if:{{{?values_from|}}}|"{{{?values_from}}}" is values_from of it <br>|}} {{#if:{{{?showInGrid|}}}|"{{{?showInGrid}}}" is showInGrid of it <br>|}} {{#if:{{{?isLink|}}}|"{{{?isLink}}}" is isLink of it <br>|}} {{#if:{{{?nullable|}}}|"{{{?nullable}}}" is nullable of it <br>|}} {{#if:{{{?topic|}}}|"{{{?topic}}}" is topic of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Property |Property name={{{name|}}} |Property label={{{label|}}} |Property type={{{type|}}} |Property index={{{index|}}} |Property sortPos={{{sortPos|}}} |Property primaryKey={{{primaryKey|}}} |Property mandatory={{{mandatory|}}} |Property namespace={{{namespace|}}} |Property size={{{size|}}} |Property uploadable={{{uploadable|}}} |Property defaultValue={{{defaultValue|}}} |Property inputType={{{inputType|}}} |Property allowedValues={{{allowedValues|}}} |Property documentation={{{documentation|}}} |Property values_from={{{values_from|}}} |Property showInGrid={{{showInGrid|}}} |Property isLink={{{isLink|}}} |Property nullable={{{nullable|}}} |Property topic={{{topic|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= === smw_type === {{#ask:[[Concept:SMW_Type]][[SMW_Type usedByProperties::{{FULLPAGENAME}}]] | ?SMW_Type type = type | ?SMW_Type documentation = documentation | ?SMW_Type helppage = helppage | ?SMW_Type typepage = typepage | ?SMW_Type javaType = javaType | ?SMW_Type usedByProperties = usedByProperties }} |tableheader={{{!}} class='wikitable' !name!!label!!type!!index!!sortPos!!primaryKey!!mandatory!!namespace!!size!!uploadable!!defaultValue!!inputType!!allowedValues!!documentation!!values_from!!showInGrid!!isLink!!nullable!!topic {{!}}- |tablerow= {{!}}{{{name|}}}{{!}}{{!}}{{{label|}}}{{!}}{{!}}{{{type|}}}{{!}}{{!}}{{{index|}}}{{!}}{{!}}{{{sortPos|}}}{{!}}{{!}}{{{primaryKey|}}}{{!}}{{!}}{{{mandatory|}}}{{!}}{{!}}{{{namespace|}}}{{!}}{{!}}{{{size|}}}{{!}}{{!}}{{{uploadable|}}}{{!}}{{!}}{{{defaultValue|}}}{{!}}{{!}}{{{inputType|}}}{{!}}{{!}}{{{allowedValues|}}}{{!}}{{!}}{{{documentation|}}}{{!}}{{!}}{{{values_from|}}}{{!}}{{!}}{{{showInGrid|}}}{{!}}{{!}}{{{isLink|}}}{{!}}{{!}}{{{nullable|}}}{{!}}{{!}}{{{topic|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>label={{#if:{{{label|}}}|{{{label|}}}|}}<br>type={{#if:{{{type|}}}|[[{{{type|}}}]]|}}<br>index={{#if:{{{index|}}}|{{{index|}}}|}}<br>sortPos={{#if:{{{sortPos|}}}|{{{sortPos|}}}|}}<br>primaryKey={{#if:{{{primaryKey|}}}|{{{primaryKey|}}}|}}<br>mandatory={{#if:{{{mandatory|}}}|{{{mandatory|}}}|}}<br>namespace={{#if:{{{namespace|}}}|{{{namespace|}}}|}}<br>size={{#if:{{{size|}}}|{{{size|}}}|}}<br>uploadable={{#if:{{{uploadable|}}}|{{{uploadable|}}}|}}<br>defaultValue={{#if:{{{defaultValue|}}}|{{{defaultValue|}}}|}}<br>inputType={{#if:{{{inputType|}}}|{{{inputType|}}}|}}<br>allowedValues={{#if:{{{allowedValues|}}}|{{{allowedValues|}}}|}}<br>documentation={{#if:{{{documentation|}}}|{{{documentation|}}}|}}<br>values_from={{#if:{{{values_from|}}}|{{{values_from|}}}|}}<br>showInGrid={{#if:{{{showInGrid|}}}|{{{showInGrid|}}}|}}<br>isLink={{#if:{{{isLink|}}}|{{{isLink|}}}|}}<br>nullable={{#if:{{{nullable|}}}|{{{nullable|}}}|}}<br>topic={{#if:{{{topic|}}}|[[{{{topic|}}}]]|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Property {{!}}- !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- !label {{!}}&nbsp;{{#if:{{{label|}}}|{{{label|}}}|}} {{!}}- !type {{!}}&nbsp;{{#if:{{{type|}}}|[[{{{type|}}}]]|}} {{!}}- !index {{!}}&nbsp;{{#if:{{{index|}}}|{{{index|}}}|}} {{!}}- !sortPos {{!}}&nbsp;{{#if:{{{sortPos|}}}|{{{sortPos|}}}|}} {{!}}- !primary key {{!}}&nbsp;{{#if:{{{primaryKey|}}}|{{{primaryKey|}}}|}} {{!}}- !mandatory {{!}}&nbsp;{{#if:{{{mandatory|}}}|{{{mandatory|}}}|}} {{!}}- !namespace {{!}}&nbsp;{{#if:{{{namespace|}}}|{{{namespace|}}}|}} {{!}}- !size {{!}}&nbsp;{{#if:{{{size|}}}|{{{size|}}}|}} {{!}}- !uploadable {{!}}&nbsp;{{#if:{{{uploadable|}}}|{{{uploadable|}}}|}} {{!}}- !default {{!}}&nbsp;{{#if:{{{defaultValue|}}}|{{{defaultValue|}}}|}} {{!}}- !inputType {{!}}&nbsp;{{#if:{{{inputType|}}}|{{{inputType|}}}|}} {{!}}- !allowedValues {{!}}&nbsp;{{#if:{{{allowedValues|}}}|{{{allowedValues|}}}|}} {{!}}- !documentation {{!}}&nbsp;{{#if:{{{documentation|}}}|{{{documentation|}}}|}} {{!}}- !values from {{!}}&nbsp;{{#if:{{{values_from|}}}|{{{values_from|}}}|}} {{!}}- !showInGrid {{!}}&nbsp;{{#if:{{{showInGrid|}}}|{{{showInGrid|}}}|}} {{!}}- !isLink {{!}}&nbsp;{{#if:{{{isLink|}}}|{{{isLink|}}}|}} {{!}}- !allow nulls? {{!}}&nbsp;{{#if:{{{nullable|}}}|{{{nullable|}}}|}} {{!}}- !topic {{!}}&nbsp;{{#if:{{{topic|}}}|[[{{{topic|}}}]]|}} {{!}}- {{!}}} }} }} [[Category:Property]] </source> Click on "Edit" to edit the Source of this Template. </noinclude><includeonly>{{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Property<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} {{#if:{{{?label|}}}|"{{{?label}}}" is label of it <br>|}} {{#if:{{{?type|}}}|"{{{?type}}}" is type of it <br>|}} {{#if:{{{?index|}}}|"{{{?index}}}" is index of it <br>|}} {{#if:{{{?sortPos|}}}|"{{{?sortPos}}}" is sortPos of it <br>|}} {{#if:{{{?primaryKey|}}}|"{{{?primaryKey}}}" is primaryKey of it <br>|}} {{#if:{{{?mandatory|}}}|"{{{?mandatory}}}" is mandatory of it <br>|}} {{#if:{{{?namespace|}}}|"{{{?namespace}}}" is namespace of it <br>|}} {{#if:{{{?size|}}}|"{{{?size}}}" is size of it <br>|}} {{#if:{{{?uploadable|}}}|"{{{?uploadable}}}" is uploadable of it <br>|}} {{#if:{{{?defaultValue|}}}|"{{{?defaultValue}}}" is defaultValue of it <br>|}} {{#if:{{{?inputType|}}}|"{{{?inputType}}}" is inputType of it <br>|}} {{#if:{{{?allowedValues|}}}|"{{{?allowedValues}}}" is allowedValues of it <br>|}} {{#if:{{{?documentation|}}}|"{{{?documentation}}}" is documentation of it <br>|}} {{#if:{{{?values_from|}}}|"{{{?values_from}}}" is values_from of it <br>|}} {{#if:{{{?showInGrid|}}}|"{{{?showInGrid}}}" is showInGrid of it <br>|}} {{#if:{{{?isLink|}}}|"{{{?isLink}}}" is isLink of it <br>|}} {{#if:{{{?nullable|}}}|"{{{?nullable}}}" is nullable of it <br>|}} {{#if:{{{?topic|}}}|"{{{?topic}}}" is topic of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Property |Property name={{{name|}}} |Property label={{{label|}}} |Property type={{{type|}}} |Property index={{{index|}}} |Property sortPos={{{sortPos|}}} |Property primaryKey={{{primaryKey|}}} |Property mandatory={{{mandatory|}}} |Property namespace={{{namespace|}}} |Property size={{{size|}}} |Property uploadable={{{uploadable|}}} |Property defaultValue={{{defaultValue|}}} |Property inputType={{{inputType|}}} |Property allowedValues={{{allowedValues|}}} |Property documentation={{{documentation|}}} |Property values_from={{{values_from|}}} |Property showInGrid={{{showInGrid|}}} |Property isLink={{{isLink|}}} |Property nullable={{{nullable|}}} |Property topic={{{topic|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= === smw_type === {{#ask:[[Concept:SMW_Type]][[SMW_Type usedByProperties::{{FULLPAGENAME}}]] | ?SMW_Type type = type | ?SMW_Type documentation = documentation | ?SMW_Type helppage = helppage | ?SMW_Type typepage = typepage | ?SMW_Type javaType = javaType | ?SMW_Type usedByProperties = usedByProperties }} |tableheader={{{!}} class='wikitable' !name!!label!!type!!index!!sortPos!!primaryKey!!mandatory!!namespace!!size!!uploadable!!defaultValue!!inputType!!allowedValues!!documentation!!values_from!!showInGrid!!isLink!!nullable!!topic {{!}}- |tablerow= {{!}}{{{name|}}}{{!}}{{!}}{{{label|}}}{{!}}{{!}}{{{type|}}}{{!}}{{!}}{{{index|}}}{{!}}{{!}}{{{sortPos|}}}{{!}}{{!}}{{{primaryKey|}}}{{!}}{{!}}{{{mandatory|}}}{{!}}{{!}}{{{namespace|}}}{{!}}{{!}}{{{size|}}}{{!}}{{!}}{{{uploadable|}}}{{!}}{{!}}{{{defaultValue|}}}{{!}}{{!}}{{{inputType|}}}{{!}}{{!}}{{{allowedValues|}}}{{!}}{{!}}{{{documentation|}}}{{!}}{{!}}{{{values_from|}}}{{!}}{{!}}{{{showInGrid|}}}{{!}}{{!}}{{{isLink|}}}{{!}}{{!}}{{{nullable|}}}{{!}}{{!}}{{{topic|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>label={{#if:{{{label|}}}|{{{label|}}}|}}<br>type={{#if:{{{type|}}}|[[{{{type|}}}]]|}}<br>index={{#if:{{{index|}}}|{{{index|}}}|}}<br>sortPos={{#if:{{{sortPos|}}}|{{{sortPos|}}}|}}<br>primaryKey={{#if:{{{primaryKey|}}}|{{{primaryKey|}}}|}}<br>mandatory={{#if:{{{mandatory|}}}|{{{mandatory|}}}|}}<br>namespace={{#if:{{{namespace|}}}|{{{namespace|}}}|}}<br>size={{#if:{{{size|}}}|{{{size|}}}|}}<br>uploadable={{#if:{{{uploadable|}}}|{{{uploadable|}}}|}}<br>defaultValue={{#if:{{{defaultValue|}}}|{{{defaultValue|}}}|}}<br>inputType={{#if:{{{inputType|}}}|{{{inputType|}}}|}}<br>allowedValues={{#if:{{{allowedValues|}}}|{{{allowedValues|}}}|}}<br>documentation={{#if:{{{documentation|}}}|{{{documentation|}}}|}}<br>values_from={{#if:{{{values_from|}}}|{{{values_from|}}}|}}<br>showInGrid={{#if:{{{showInGrid|}}}|{{{showInGrid|}}}|}}<br>isLink={{#if:{{{isLink|}}}|{{{isLink|}}}|}}<br>nullable={{#if:{{{nullable|}}}|{{{nullable|}}}|}}<br>topic={{#if:{{{topic|}}}|[[{{{topic|}}}]]|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Property {{!}}- !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- !label {{!}}&nbsp;{{#if:{{{label|}}}|{{{label|}}}|}} {{!}}- !type {{!}}&nbsp;{{#if:{{{type|}}}|[[{{{type|}}}]]|}} {{!}}- !index {{!}}&nbsp;{{#if:{{{index|}}}|{{{index|}}}|}} {{!}}- !sortPos {{!}}&nbsp;{{#if:{{{sortPos|}}}|{{{sortPos|}}}|}} {{!}}- !primary key {{!}}&nbsp;{{#if:{{{primaryKey|}}}|{{{primaryKey|}}}|}} {{!}}- !mandatory {{!}}&nbsp;{{#if:{{{mandatory|}}}|{{{mandatory|}}}|}} {{!}}- !namespace {{!}}&nbsp;{{#if:{{{namespace|}}}|{{{namespace|}}}|}} {{!}}- !size {{!}}&nbsp;{{#if:{{{size|}}}|{{{size|}}}|}} {{!}}- !uploadable {{!}}&nbsp;{{#if:{{{uploadable|}}}|{{{uploadable|}}}|}} {{!}}- !default {{!}}&nbsp;{{#if:{{{defaultValue|}}}|{{{defaultValue|}}}|}} {{!}}- !inputType {{!}}&nbsp;{{#if:{{{inputType|}}}|{{{inputType|}}}|}} {{!}}- !allowedValues {{!}}&nbsp;{{#if:{{{allowedValues|}}}|{{{allowedValues|}}}|}} {{!}}- !documentation {{!}}&nbsp;{{#if:{{{documentation|}}}|{{{documentation|}}}|}} {{!}}- !values from {{!}}&nbsp;{{#if:{{{values_from|}}}|{{{values_from|}}}|}} {{!}}- !showInGrid {{!}}&nbsp;{{#if:{{{showInGrid|}}}|{{{showInGrid|}}}|}} {{!}}- !isLink {{!}}&nbsp;{{#if:{{{isLink|}}}|{{{isLink|}}}|}} {{!}}- !allow nulls? {{!}}&nbsp;{{#if:{{{nullable|}}}|{{{nullable|}}}|}} {{!}}- !topic {{!}}&nbsp;{{#if:{{{topic|}}}|[[{{{topic|}}}]]|}} {{!}}- {{!}}} }} }} [[Category:Property]]</includeonly> d4977c0b4948c798a7315908febbc7717942c7d2 Template:TopicLink 10 142 186 2015-11-06T06:47:32Z Wf 1 created by WikiTask 2015-11-06T06:47:31Z wikitext text/x-wiki <noinclude> <!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> This is the template {{Link|target=Template:TopicLink|title=TopicLink}}. It belongs to the concept/topic {{Link|target=:Concept:TopicLink}}<br> You may find examples for the use of this template via the {{Link|target=List of TopicLinks}}. === Usage === ==== storemode subobject ==== <pre>{{TopicLink |name= |source= |sourceRole= |sourceMultiple= |sourceDocumentation= |target= |targetRole= |targetMultiple= |targetDocumentation= |masterDetail= |storemode=subobject }} </pre> ==== storemode property ==== <pre>{{TopicLink |name= |source= |sourceRole= |sourceMultiple= |sourceDocumentation= |target= |targetRole= |targetMultiple= |targetDocumentation= |masterDetail= |storemode=property }} </pre> ==== storemode none ==== <pre>{{TopicLink |name= |source= |sourceRole= |sourceMultiple= |sourceDocumentation= |target= |targetRole= |targetMultiple= |targetDocumentation= |masterDetail= |storemode=none }} </pre> ==== viewmode tableheader ==== <pre>{{TopicLink |name= |source= |sourceRole= |sourceMultiple= |sourceDocumentation= |target= |targetRole= |targetMultiple= |targetDocumentation= |masterDetail= |viewmode=tableheader }} </pre> ==== viewmode tablerow ==== <pre>{{TopicLink |name= |source= |sourceRole= |sourceMultiple= |sourceDocumentation= |target= |targetRole= |targetMultiple= |targetDocumentation= |masterDetail= |viewmode=tablerow }} </pre> ==== viewmode tablefooter ==== <pre>{{TopicLink |name= |source= |sourceRole= |sourceMultiple= |sourceDocumentation= |target= |targetRole= |targetMultiple= |targetDocumentation= |masterDetail= |viewmode=tablefooter }} </pre> ==== viewmode labelfield ==== <pre>{{TopicLink |name= |source= |sourceRole= |sourceMultiple= |sourceDocumentation= |target= |targetRole= |targetMultiple= |targetDocumentation= |masterDetail= |viewmode=labelfield }} </pre> === Source === <source lang='html4strict'> {{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA TopicLink<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} {{#if:{{{?source|}}}|"{{{?source}}}" is source of it <br>|}} {{#if:{{{?sourceRole|}}}|"{{{?sourceRole}}}" is sourceRole of it <br>|}} {{#if:{{{?sourceMultiple|}}}|"{{{?sourceMultiple}}}" is sourceMultiple of it <br>|}} {{#if:{{{?sourceDocumentation|}}}|"{{{?sourceDocumentation}}}" is sourceDocumentation of it <br>|}} {{#if:{{{?target|}}}|"{{{?target}}}" is target of it <br>|}} {{#if:{{{?targetRole|}}}|"{{{?targetRole}}}" is targetRole of it <br>|}} {{#if:{{{?targetMultiple|}}}|"{{{?targetMultiple}}}" is targetMultiple of it <br>|}} {{#if:{{{?targetDocumentation|}}}|"{{{?targetDocumentation}}}" is targetDocumentation of it <br>|}} {{#if:{{{?masterDetail|}}}|"{{{?masterDetail}}}" is masterDetail of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |subobject={{#subobject:- |isA=TopicLink |TopicLink name={{{name|}}} |TopicLink source={{{source|}}} |TopicLink sourceRole={{{sourceRole|}}} |TopicLink sourceMultiple={{{sourceMultiple|}}} |TopicLink sourceDocumentation={{{sourceDocumentation|}}} |TopicLink target={{{target|}}} |TopicLink targetRole={{{targetRole|}}} |TopicLink targetMultiple={{{targetMultiple|}}} |TopicLink targetDocumentation={{{targetDocumentation|}}} |TopicLink masterDetail={{{masterDetail|}}} }} |{{#set: |isA=TopicLink |TopicLink name={{{name|}}} |TopicLink source={{{source|}}} |TopicLink sourceRole={{{sourceRole|}}} |TopicLink sourceMultiple={{{sourceMultiple|}}} |TopicLink sourceDocumentation={{{sourceDocumentation|}}} |TopicLink target={{{target|}}} |TopicLink targetRole={{{targetRole|}}} |TopicLink targetMultiple={{{targetMultiple|}}} |TopicLink targetDocumentation={{{targetDocumentation|}}} |TopicLink masterDetail={{{masterDetail|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !name!!source!!sourceRole!!sourceMultiple!!sourceDocumentation!!target!!targetRole!!targetMultiple!!targetDocumentation!!masterDetail {{!}}- |tablerow= {{!}}{{{name|}}}{{!}}{{!}}{{{source|}}}{{!}}{{!}}{{{sourceRole|}}}{{!}}{{!}}{{{sourceMultiple|}}}{{!}}{{!}}{{{sourceDocumentation|}}}{{!}}{{!}}{{{target|}}}{{!}}{{!}}{{{targetRole|}}}{{!}}{{!}}{{{targetMultiple|}}}{{!}}{{!}}{{{targetDocumentation|}}}{{!}}{{!}}{{{masterDetail|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>source={{#if:{{{source|}}}|[[{{{source|}}}]]|}}<br>sourceRole={{#if:{{{sourceRole|}}}|{{{sourceRole|}}}|}}<br>sourceMultiple={{#if:{{{sourceMultiple|}}}|{{{sourceMultiple|}}}|}}<br>sourceDocumentation={{#if:{{{sourceDocumentation|}}}|{{{sourceDocumentation|}}}|}}<br>target={{#if:{{{target|}}}|[[{{{target|}}}]]|}}<br>targetRole={{#if:{{{targetRole|}}}|{{{targetRole|}}}|}}<br>targetMultiple={{#if:{{{targetMultiple|}}}|{{{targetMultiple|}}}|}}<br>targetDocumentation={{#if:{{{targetDocumentation|}}}|{{{targetDocumentation|}}}|}}<br>masterDetail={{#if:{{{masterDetail|}}}|{{{masterDetail|}}}|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}TopicLink {{!}}- !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- !source {{!}}&nbsp;{{#if:{{{source|}}}|[[{{{source|}}}]]|}} {{!}}- !sourceRole {{!}}&nbsp;{{#if:{{{sourceRole|}}}|{{{sourceRole|}}}|}} {{!}}- !sourceMultiple {{!}}&nbsp;{{#if:{{{sourceMultiple|}}}|{{{sourceMultiple|}}}|}} {{!}}- !source Doc {{!}}&nbsp;{{#if:{{{sourceDocumentation|}}}|{{{sourceDocumentation|}}}|}} {{!}}- !target {{!}}&nbsp;{{#if:{{{target|}}}|[[{{{target|}}}]]|}} {{!}}- !targetRole {{!}}&nbsp;{{#if:{{{targetRole|}}}|{{{targetRole|}}}|}} {{!}}- !sourceMultiple {{!}}&nbsp;{{#if:{{{targetMultiple|}}}|{{{targetMultiple|}}}|}} {{!}}- !target Doc {{!}}&nbsp;{{#if:{{{targetDocumentation|}}}|{{{targetDocumentation|}}}|}} {{!}}- !masterDetail {{!}}&nbsp;{{#if:{{{masterDetail|}}}|{{{masterDetail|}}}|}} {{!}}- {{!}}} }} }} </source> Click on "Edit" to edit the Source of this Template. </noinclude><includeonly>{{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA TopicLink<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} {{#if:{{{?source|}}}|"{{{?source}}}" is source of it <br>|}} {{#if:{{{?sourceRole|}}}|"{{{?sourceRole}}}" is sourceRole of it <br>|}} {{#if:{{{?sourceMultiple|}}}|"{{{?sourceMultiple}}}" is sourceMultiple of it <br>|}} {{#if:{{{?sourceDocumentation|}}}|"{{{?sourceDocumentation}}}" is sourceDocumentation of it <br>|}} {{#if:{{{?target|}}}|"{{{?target}}}" is target of it <br>|}} {{#if:{{{?targetRole|}}}|"{{{?targetRole}}}" is targetRole of it <br>|}} {{#if:{{{?targetMultiple|}}}|"{{{?targetMultiple}}}" is targetMultiple of it <br>|}} {{#if:{{{?targetDocumentation|}}}|"{{{?targetDocumentation}}}" is targetDocumentation of it <br>|}} {{#if:{{{?masterDetail|}}}|"{{{?masterDetail}}}" is masterDetail of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |subobject={{#subobject:- |isA=TopicLink |TopicLink name={{{name|}}} |TopicLink source={{{source|}}} |TopicLink sourceRole={{{sourceRole|}}} |TopicLink sourceMultiple={{{sourceMultiple|}}} |TopicLink sourceDocumentation={{{sourceDocumentation|}}} |TopicLink target={{{target|}}} |TopicLink targetRole={{{targetRole|}}} |TopicLink targetMultiple={{{targetMultiple|}}} |TopicLink targetDocumentation={{{targetDocumentation|}}} |TopicLink masterDetail={{{masterDetail|}}} }} |{{#set: |isA=TopicLink |TopicLink name={{{name|}}} |TopicLink source={{{source|}}} |TopicLink sourceRole={{{sourceRole|}}} |TopicLink sourceMultiple={{{sourceMultiple|}}} |TopicLink sourceDocumentation={{{sourceDocumentation|}}} |TopicLink target={{{target|}}} |TopicLink targetRole={{{targetRole|}}} |TopicLink targetMultiple={{{targetMultiple|}}} |TopicLink targetDocumentation={{{targetDocumentation|}}} |TopicLink masterDetail={{{masterDetail|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !name!!source!!sourceRole!!sourceMultiple!!sourceDocumentation!!target!!targetRole!!targetMultiple!!targetDocumentation!!masterDetail {{!}}- |tablerow= {{!}}{{{name|}}}{{!}}{{!}}{{{source|}}}{{!}}{{!}}{{{sourceRole|}}}{{!}}{{!}}{{{sourceMultiple|}}}{{!}}{{!}}{{{sourceDocumentation|}}}{{!}}{{!}}{{{target|}}}{{!}}{{!}}{{{targetRole|}}}{{!}}{{!}}{{{targetMultiple|}}}{{!}}{{!}}{{{targetDocumentation|}}}{{!}}{{!}}{{{masterDetail|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>source={{#if:{{{source|}}}|[[{{{source|}}}]]|}}<br>sourceRole={{#if:{{{sourceRole|}}}|{{{sourceRole|}}}|}}<br>sourceMultiple={{#if:{{{sourceMultiple|}}}|{{{sourceMultiple|}}}|}}<br>sourceDocumentation={{#if:{{{sourceDocumentation|}}}|{{{sourceDocumentation|}}}|}}<br>target={{#if:{{{target|}}}|[[{{{target|}}}]]|}}<br>targetRole={{#if:{{{targetRole|}}}|{{{targetRole|}}}|}}<br>targetMultiple={{#if:{{{targetMultiple|}}}|{{{targetMultiple|}}}|}}<br>targetDocumentation={{#if:{{{targetDocumentation|}}}|{{{targetDocumentation|}}}|}}<br>masterDetail={{#if:{{{masterDetail|}}}|{{{masterDetail|}}}|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}TopicLink {{!}}- !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- !source {{!}}&nbsp;{{#if:{{{source|}}}|[[{{{source|}}}]]|}} {{!}}- !sourceRole {{!}}&nbsp;{{#if:{{{sourceRole|}}}|{{{sourceRole|}}}|}} {{!}}- !sourceMultiple {{!}}&nbsp;{{#if:{{{sourceMultiple|}}}|{{{sourceMultiple|}}}|}} {{!}}- !source Doc {{!}}&nbsp;{{#if:{{{sourceDocumentation|}}}|{{{sourceDocumentation|}}}|}} {{!}}- !target {{!}}&nbsp;{{#if:{{{target|}}}|[[{{{target|}}}]]|}} {{!}}- !targetRole {{!}}&nbsp;{{#if:{{{targetRole|}}}|{{{targetRole|}}}|}} {{!}}- !sourceMultiple {{!}}&nbsp;{{#if:{{{targetMultiple|}}}|{{{targetMultiple|}}}|}} {{!}}- !target Doc {{!}}&nbsp;{{#if:{{{targetDocumentation|}}}|{{{targetDocumentation|}}}|}} {{!}}- !masterDetail {{!}}&nbsp;{{#if:{{{masterDetail|}}}|{{{masterDetail|}}}|}} {{!}}- {{!}}} }} }} </includeonly> db0fa97d84e5884ae1b4f87005c6070dedcda267 Concept:Action/Properties 108 143 187 2015-11-06T06:47:34Z Wf 1 created by WikiTask 2015-11-06T06:47:33Z wikitext text/x-wiki == properties of Action == === [[Property:Action servicetype]] === <pre> {{Property |name=servicetype |documentation= |type=Special:Types/Text |label=servicetype |primaryKey= |mandatory= |uploadable= |size= |index= |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Action service]] === <pre> {{Property |name=service |documentation= |type=Special:Types/Text |label=service |primaryKey= |mandatory= |uploadable= |size= |index= |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Action inputtype]] === <pre> {{Property |name=inputtype |documentation= |type=Special:Types/Text |label=inputtype |primaryKey= |mandatory= |uploadable= |size= |index= |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Action input]] === <pre> {{Property |name=input |documentation= |type=Special:Types/Text |label=input |primaryKey= |mandatory= |uploadable= |size= |index= |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Action actionpage]] === <pre> {{Property |name=actionpage |documentation= |type=Special:Types/Text |label=actionpage |primaryKey= |mandatory= |uploadable= |size= |index= |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> === [[Property:Action output]] === <pre> {{Property |name=output |documentation= |type=Special:Types/Text |label=output |primaryKey= |mandatory= |uploadable= |size= |index= |sortPos= |defaultValue= |inputType= |allowedValues= |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> 6631bca5789e70022a70aad462f3505568102001 Template:Action 10 144 188 2015-11-06T06:47:37Z Wf 1 created by WikiTask 2015-11-06T06:47:36Z wikitext text/x-wiki <noinclude> <!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> This is the template {{Link|target=Template:Action|title=Action}}. It belongs to the concept/topic {{Link|target=:Concept:Action}}<br> You may find examples for the use of this template via the {{Link|target=List of Actions}}. === Usage === ==== storemode subobject ==== <pre>{{Action |servicetype= |service= |inputtype= |input= |actionpage= |output= |storemode=subobject }} </pre> ==== storemode property ==== <pre>{{Action |servicetype= |service= |inputtype= |input= |actionpage= |output= |storemode=property }} </pre> ==== storemode none ==== <pre>{{Action |servicetype= |service= |inputtype= |input= |actionpage= |output= |storemode=none }} </pre> ==== viewmode tableheader ==== <pre>{{Action |servicetype= |service= |inputtype= |input= |actionpage= |output= |viewmode=tableheader }} </pre> ==== viewmode tablerow ==== <pre>{{Action |servicetype= |service= |inputtype= |input= |actionpage= |output= |viewmode=tablerow }} </pre> ==== viewmode tablefooter ==== <pre>{{Action |servicetype= |service= |inputtype= |input= |actionpage= |output= |viewmode=tablefooter }} </pre> ==== viewmode labelfield ==== <pre>{{Action |servicetype= |service= |inputtype= |input= |actionpage= |output= |viewmode=labelfield }} </pre> === Source === <source lang='html4strict'> {{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Action<br>|}} {{#if:{{{?servicetype|}}}|"{{{?servicetype}}}" is servicetype of it <br>|}} {{#if:{{{?service|}}}|"{{{?service}}}" is service of it <br>|}} {{#if:{{{?inputtype|}}}|"{{{?inputtype}}}" is inputtype of it <br>|}} {{#if:{{{?input|}}}|"{{{?input}}}" is input of it <br>|}} {{#if:{{{?actionpage|}}}|"{{{?actionpage}}}" is actionpage of it <br>|}} {{#if:{{{?output|}}}|"{{{?output}}}" is output of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Action |Action servicetype={{{servicetype|}}} |Action service={{{service|}}} |Action inputtype={{{inputtype|}}} |Action input={{{input|}}} |Action actionpage={{{actionpage|}}} |Action output={{{output|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !servicetype!!service!!inputtype!!input!!actionpage!!output {{!}}- |tablerow= {{!}}{{{servicetype|}}}{{!}}{{!}}{{{service|}}}{{!}}{{!}}{{{inputtype|}}}{{!}}{{!}}{{{input|}}}{{!}}{{!}}{{{actionpage|}}}{{!}}{{!}}{{{output|}}} {{!}}- |tablefooter={{!}}} |labelfield= servicetype={{#if:{{{servicetype|}}}|{{{servicetype|}}}|}}<br>service={{#if:{{{service|}}}|{{{service|}}}|}}<br>inputtype={{#if:{{{inputtype|}}}|{{{inputtype|}}}|}}<br>input={{#if:{{{input|}}}|{{{input|}}}|}}<br>actionpage={{#if:{{{actionpage|}}}|{{{actionpage|}}}|}}<br>output={{#if:{{{output|}}}|{{{output|}}}|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Action {{!}}- !servicetype {{!}}&nbsp;{{#if:{{{servicetype|}}}|{{{servicetype|}}}|}} {{!}}- !service {{!}}&nbsp;{{#if:{{{service|}}}|{{{service|}}}|}} {{!}}- !inputtype {{!}}&nbsp;{{#if:{{{inputtype|}}}|{{{inputtype|}}}|}} {{!}}- !input {{!}}&nbsp;{{#if:{{{input|}}}|{{{input|}}}|}} {{!}}- !actionpage {{!}}&nbsp;{{#if:{{{actionpage|}}}|{{{actionpage|}}}|}} {{!}}- !output {{!}}&nbsp;{{#if:{{{output|}}}|{{{output|}}}|}} {{!}}- {{!}}} }} }} </source> Click on "Edit" to edit the Source of this Template. </noinclude><includeonly>{{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Action<br>|}} {{#if:{{{?servicetype|}}}|"{{{?servicetype}}}" is servicetype of it <br>|}} {{#if:{{{?service|}}}|"{{{?service}}}" is service of it <br>|}} {{#if:{{{?inputtype|}}}|"{{{?inputtype}}}" is inputtype of it <br>|}} {{#if:{{{?input|}}}|"{{{?input}}}" is input of it <br>|}} {{#if:{{{?actionpage|}}}|"{{{?actionpage}}}" is actionpage of it <br>|}} {{#if:{{{?output|}}}|"{{{?output}}}" is output of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Action |Action servicetype={{{servicetype|}}} |Action service={{{service|}}} |Action inputtype={{{inputtype|}}} |Action input={{{input|}}} |Action actionpage={{{actionpage|}}} |Action output={{{output|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !servicetype!!service!!inputtype!!input!!actionpage!!output {{!}}- |tablerow= {{!}}{{{servicetype|}}}{{!}}{{!}}{{{service|}}}{{!}}{{!}}{{{inputtype|}}}{{!}}{{!}}{{{input|}}}{{!}}{{!}}{{{actionpage|}}}{{!}}{{!}}{{{output|}}} {{!}}- |tablefooter={{!}}} |labelfield= servicetype={{#if:{{{servicetype|}}}|{{{servicetype|}}}|}}<br>service={{#if:{{{service|}}}|{{{service|}}}|}}<br>inputtype={{#if:{{{inputtype|}}}|{{{inputtype|}}}|}}<br>input={{#if:{{{input|}}}|{{{input|}}}|}}<br>actionpage={{#if:{{{actionpage|}}}|{{{actionpage|}}}|}}<br>output={{#if:{{{output|}}}|{{{output|}}}|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Action {{!}}- !servicetype {{!}}&nbsp;{{#if:{{{servicetype|}}}|{{{servicetype|}}}|}} {{!}}- !service {{!}}&nbsp;{{#if:{{{service|}}}|{{{service|}}}|}} {{!}}- !inputtype {{!}}&nbsp;{{#if:{{{inputtype|}}}|{{{inputtype|}}}|}} {{!}}- !input {{!}}&nbsp;{{#if:{{{input|}}}|{{{input|}}}|}} {{!}}- !actionpage {{!}}&nbsp;{{#if:{{{actionpage|}}}|{{{actionpage|}}}|}} {{!}}- !output {{!}}&nbsp;{{#if:{{{output|}}}|{{{output|}}}|}} {{!}}- {{!}}} }} }} </includeonly> 648c4eef0eefeeee1c9bfd7fe4986c7f29dae8aa List of Actions 0 145 189 2015-11-06T06:47:40Z Wf 1 created by WikiTask 2015-11-06T06:47:39Z wikitext text/x-wiki __NOCACHE__ {{#ask: [[Topic name::Action]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} == Actions == {{#ask: [[Concept:Action]] | ?Action servicetype = servicetype | ?Action service = service | ?Action inputtype = inputtype | ?Action input = input | ?Action actionpage = actionpage | ?Action output = output }} {{#forminput:form=Action|button text=add Action}} <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> === SiDIF === <div class="mw-collapsible-content"> {{#ask: [[Concept:Action]] | ?#=pageid | ?Action servicetype = servicetype | ?Action service = service | ?Action inputtype = inputtype | ?Action input = input | ?Action actionpage = actionpage | ?Action output = output | mainlabel=- | format=template | named args=yes | template=Action | userparam=sidif | limit=300 }} </div> </div> [[:Category:Action]] 7070c1f278f26e4ceebd2cbc19777e1b933e031f Help:Action 12 146 190 2015-11-06T06:47:44Z Wf 1 created by WikiTask 2015-11-06T06:47:41Z wikitext text/x-wiki == Help for Action == {{#ask: [[Topic name::Action]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} === Documentation === === Example Actions === {{#ask: [[Concept:Action]] }} === Properties === {{#ask: [[Concept:Property]][[Property topic::Concept:Action]] | ?Property documentation = documentation | ?Property type = type | ?Property name = name | ?Property label = label | ?Property allowedValues = allowedValues | ?Property mandatory = mandatory | ?Property uploadable = uploadable |format=table }} === uml === <uml> title Action note as ActionDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as ActionNote end note class Action { Text servicetype Text service Text inputtype Text input Text actionpage Text output } ActionNote .. Action ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> see also * [[List of Actions]] * [[Help:Action]] * [[Concept:Action]] * [[:Category:Action]] * [[:Template:Action]] * [[:Form:Action]] topic links: [[Category:Action]] 63560b804c7f17e96a07b26d7f4eed9c99a3f872 Category:Action 14 147 191 2015-11-06T06:47:48Z Wf 1 created by WikiTask 2015-11-06T06:47:46Z wikitext text/x-wiki __NOTOC__ {{#ask: [[Topic name::Action]] | ?Topic wikiDocumentation= | mainlabel=-}} Actions may be added and edited with the form [[has default form::Action]] * [[List of Actions]] <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> Action description <div class="mw-collapsible-content"> === uml === <uml> title Action note as ActionDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as ActionNote end note class Action { Text servicetype Text service Text inputtype Text input Text actionpage Text output } ActionNote .. Action ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> * [[Help:Action]] * [[Concept:Action]] * [[:Template:Action]] * [[:Form:Action]] === Properties === * [[Property:Action servicetype]] * [[Property:Action service]] * [[Property:Action inputtype]] * [[Property:Action input]] * [[Property:Action actionpage]] * [[Property:Action output]] </div> </div> a60ae4b81be39f75f41766245e6cce4f161de5e9 Template:Topic 10 148 192 2015-11-06T06:47:51Z Wf 1 created by WikiTask 2015-11-06T06:47:49Z wikitext text/x-wiki <noinclude> <!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> This is the template {{Link|target=Template:Topic|title=Topic}}. It belongs to the concept/topic {{Link|target=:Concept:Topic}}<br> You may find examples for the use of this template via the {{Link|target=List of Topics}}. === Usage === ==== storemode subobject ==== <pre>{{Topic |name= |pluralName= |icon= |iconUrl= |documentation= |wikiDocumentation= |defaultstoremode= |listLimit= |cargo= |context= |storemode=subobject }} </pre> ==== storemode property ==== <pre>{{Topic |name= |pluralName= |icon= |iconUrl= |documentation= |wikiDocumentation= |defaultstoremode= |listLimit= |cargo= |context= |storemode=property }} </pre> ==== storemode none ==== <pre>{{Topic |name= |pluralName= |icon= |iconUrl= |documentation= |wikiDocumentation= |defaultstoremode= |listLimit= |cargo= |context= |storemode=none }} </pre> ==== viewmode tableheader ==== <pre>{{Topic |name= |pluralName= |icon= |iconUrl= |documentation= |wikiDocumentation= |defaultstoremode= |listLimit= |cargo= |context= |viewmode=tableheader }} </pre> ==== viewmode tablerow ==== <pre>{{Topic |name= |pluralName= |icon= |iconUrl= |documentation= |wikiDocumentation= |defaultstoremode= |listLimit= |cargo= |context= |viewmode=tablerow }} </pre> ==== viewmode tablefooter ==== <pre>{{Topic |name= |pluralName= |icon= |iconUrl= |documentation= |wikiDocumentation= |defaultstoremode= |listLimit= |cargo= |context= |viewmode=tablefooter }} </pre> ==== viewmode labelfield ==== <pre>{{Topic |name= |pluralName= |icon= |iconUrl= |documentation= |wikiDocumentation= |defaultstoremode= |listLimit= |cargo= |context= |viewmode=labelfield }} </pre> === Source === <source lang='html4strict'> {{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Topic<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} {{#if:{{{?pluralName|}}}|"{{{?pluralName}}}" is pluralName of it <br>|}} {{#if:{{{?icon|}}}|"{{{?icon}}}" is icon of it <br>|}} {{#if:{{{?iconUrl|}}}|"{{{?iconUrl}}}" is iconUrl of it <br>|}} {{#if:{{{?documentation|}}}|"{{{?documentation}}}" is documentation of it <br>|}} {{#if:{{{?wikiDocumentation|}}}|"{{{?wikiDocumentation}}}" is wikiDocumentation of it <br>|}} {{#if:{{{?defaultstoremode|}}}|"{{{?defaultstoremode}}}" is defaultstoremode of it <br>|}} {{#if:{{{?listLimit|}}}|"{{{?listLimit}}}" is listLimit of it <br>|}} {{#if:{{{?cargo|}}}|"{{{?cargo}}}" is cargo of it <br>|}} {{#if:{{{?context|}}}|"{{{?context}}}" is context of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Topic |Topic name={{{name|}}} |Topic pluralName={{{pluralName|}}} |Topic icon={{{icon|}}} |Topic iconUrl={{{iconUrl|}}} |Topic documentation={{{documentation|}}} |Topic wikiDocumentation={{{wikiDocumentation|}}} |Topic defaultstoremode={{{defaultstoremode|}}} |Topic listLimit={{{listLimit|}}} |Topic cargo={{{cargo|}}} |Topic context={{{context|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= === properties === {{#ask:[[Concept:Property]][[Property topic::{{FULLPAGENAME}}]] | ?Property name = name | ?Property label = label | ?Property type = type | ?Property index = index | ?Property sortPos = sortPos | ?Property primaryKey = primaryKey | ?Property mandatory = mandatory | ?Property namespace = namespace | ?Property size = size | ?Property uploadable = uploadable | ?Property defaultValue = defaultValue | ?Property inputType = inputType | ?Property allowedValues = allowedValues | ?Property documentation = documentation | ?Property values_from = values_from | ?Property showInGrid = showInGrid | ?Property isLink = isLink | ?Property nullable = nullable | ?Property topic = topic }} |tableheader={{{!}} class='wikitable' !name!!pluralName!!icon!!iconUrl!!documentation!!wikiDocumentation!!defaultstoremode!!listLimit!!cargo!!context {{!}}- |tablerow= {{!}}{{{name|}}}{{!}}{{!}}{{{pluralName|}}}{{!}}{{!}}{{{icon|}}}{{!}}{{!}}{{{iconUrl|}}}{{!}}{{!}}{{{documentation|}}}{{!}}{{!}}{{{wikiDocumentation|}}}{{!}}{{!}}{{{defaultstoremode|}}}{{!}}{{!}}{{{listLimit|}}}{{!}}{{!}}{{{cargo|}}}{{!}}{{!}}{{{context|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>pluralName={{#if:{{{pluralName|}}}|{{{pluralName|}}}|}}<br>icon={{#if:{{{icon|}}}|[[{{{icon|}}}]]|}}<br>iconUrl={{#if:{{{iconUrl|}}}|{{{iconUrl|}}}|}}<br>documentation={{#if:{{{documentation|}}}|{{{documentation|}}}|}}<br>wikiDocumentation={{#if:{{{wikiDocumentation|}}}|{{{wikiDocumentation|}}}|}}<br>defaultstoremode={{#if:{{{defaultstoremode|}}}|{{{defaultstoremode|}}}|}}<br>listLimit={{#if:{{{listLimit|}}}|{{{listLimit|}}}|}}<br>cargo={{#if:{{{cargo|}}}|{{{cargo|}}}|}}<br>context={{#if:{{{context|}}}|[[{{{context|}}}]]|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Topic {{!}}- !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- !pluralName {{!}}&nbsp;{{#if:{{{pluralName|}}}|{{{pluralName|}}}|}} {{!}}- !icon {{!}}&nbsp;{{#if:{{{icon|}}}|[[{{{icon|}}}]]|}} {{!}}- !icon Url {{!}}&nbsp;{{#if:{{{iconUrl|}}}|{{{iconUrl|}}}|}} {{!}}- !documentation {{!}}&nbsp;{{#if:{{{documentation|}}}|{{{documentation|}}}|}} {{!}}- !wikiDocumentation {{!}}&nbsp;{{#if:{{{wikiDocumentation|}}}|{{{wikiDocumentation|}}}|}} {{!}}- !default storemode {{!}}&nbsp;{{#if:{{{defaultstoremode|}}}|{{{defaultstoremode|}}}|}} {{!}}- !list Limit {{!}}&nbsp;{{#if:{{{listLimit|}}}|{{{listLimit|}}}|}} {{!}}- !use cargo {{!}}&nbsp;{{#if:{{{cargo|}}}|{{{cargo|}}}|}} {{!}}- !context {{!}}&nbsp;{{#if:{{{context|}}}|[[{{{context|}}}]]|}} {{!}}- {{!}}} }} }} [[Category:Topic]] </source> Click on "Edit" to edit the Source of this Template. </noinclude><includeonly>{{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Topic<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} {{#if:{{{?pluralName|}}}|"{{{?pluralName}}}" is pluralName of it <br>|}} {{#if:{{{?icon|}}}|"{{{?icon}}}" is icon of it <br>|}} {{#if:{{{?iconUrl|}}}|"{{{?iconUrl}}}" is iconUrl of it <br>|}} {{#if:{{{?documentation|}}}|"{{{?documentation}}}" is documentation of it <br>|}} {{#if:{{{?wikiDocumentation|}}}|"{{{?wikiDocumentation}}}" is wikiDocumentation of it <br>|}} {{#if:{{{?defaultstoremode|}}}|"{{{?defaultstoremode}}}" is defaultstoremode of it <br>|}} {{#if:{{{?listLimit|}}}|"{{{?listLimit}}}" is listLimit of it <br>|}} {{#if:{{{?cargo|}}}|"{{{?cargo}}}" is cargo of it <br>|}} {{#if:{{{?context|}}}|"{{{?context}}}" is context of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Topic |Topic name={{{name|}}} |Topic pluralName={{{pluralName|}}} |Topic icon={{{icon|}}} |Topic iconUrl={{{iconUrl|}}} |Topic documentation={{{documentation|}}} |Topic wikiDocumentation={{{wikiDocumentation|}}} |Topic defaultstoremode={{{defaultstoremode|}}} |Topic listLimit={{{listLimit|}}} |Topic cargo={{{cargo|}}} |Topic context={{{context|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= === properties === {{#ask:[[Concept:Property]][[Property topic::{{FULLPAGENAME}}]] | ?Property name = name | ?Property label = label | ?Property type = type | ?Property index = index | ?Property sortPos = sortPos | ?Property primaryKey = primaryKey | ?Property mandatory = mandatory | ?Property namespace = namespace | ?Property size = size | ?Property uploadable = uploadable | ?Property defaultValue = defaultValue | ?Property inputType = inputType | ?Property allowedValues = allowedValues | ?Property documentation = documentation | ?Property values_from = values_from | ?Property showInGrid = showInGrid | ?Property isLink = isLink | ?Property nullable = nullable | ?Property topic = topic }} |tableheader={{{!}} class='wikitable' !name!!pluralName!!icon!!iconUrl!!documentation!!wikiDocumentation!!defaultstoremode!!listLimit!!cargo!!context {{!}}- |tablerow= {{!}}{{{name|}}}{{!}}{{!}}{{{pluralName|}}}{{!}}{{!}}{{{icon|}}}{{!}}{{!}}{{{iconUrl|}}}{{!}}{{!}}{{{documentation|}}}{{!}}{{!}}{{{wikiDocumentation|}}}{{!}}{{!}}{{{defaultstoremode|}}}{{!}}{{!}}{{{listLimit|}}}{{!}}{{!}}{{{cargo|}}}{{!}}{{!}}{{{context|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>pluralName={{#if:{{{pluralName|}}}|{{{pluralName|}}}|}}<br>icon={{#if:{{{icon|}}}|[[{{{icon|}}}]]|}}<br>iconUrl={{#if:{{{iconUrl|}}}|{{{iconUrl|}}}|}}<br>documentation={{#if:{{{documentation|}}}|{{{documentation|}}}|}}<br>wikiDocumentation={{#if:{{{wikiDocumentation|}}}|{{{wikiDocumentation|}}}|}}<br>defaultstoremode={{#if:{{{defaultstoremode|}}}|{{{defaultstoremode|}}}|}}<br>listLimit={{#if:{{{listLimit|}}}|{{{listLimit|}}}|}}<br>cargo={{#if:{{{cargo|}}}|{{{cargo|}}}|}}<br>context={{#if:{{{context|}}}|[[{{{context|}}}]]|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Topic {{!}}- !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- !pluralName {{!}}&nbsp;{{#if:{{{pluralName|}}}|{{{pluralName|}}}|}} {{!}}- !icon {{!}}&nbsp;{{#if:{{{icon|}}}|[[{{{icon|}}}]]|}} {{!}}- !icon Url {{!}}&nbsp;{{#if:{{{iconUrl|}}}|{{{iconUrl|}}}|}} {{!}}- !documentation {{!}}&nbsp;{{#if:{{{documentation|}}}|{{{documentation|}}}|}} {{!}}- !wikiDocumentation {{!}}&nbsp;{{#if:{{{wikiDocumentation|}}}|{{{wikiDocumentation|}}}|}} {{!}}- !default storemode {{!}}&nbsp;{{#if:{{{defaultstoremode|}}}|{{{defaultstoremode|}}}|}} {{!}}- !list Limit {{!}}&nbsp;{{#if:{{{listLimit|}}}|{{{listLimit|}}}|}} {{!}}- !use cargo {{!}}&nbsp;{{#if:{{{cargo|}}}|{{{cargo|}}}|}} {{!}}- !context {{!}}&nbsp;{{#if:{{{context|}}}|[[{{{context|}}}]]|}} {{!}}- {{!}}} }} }} [[Category:Topic]]</includeonly> 4582cb57be924b838fba8dc4e16286403645b8a1 Main Page 0 1 193 66 2015-11-06T06:59:06Z Wf 1 /* Make the ProfWiki cake */ wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === What is a ProfiWiki ?=== * Structured and unstructured content * Easy search * Quick data entry and linking * Team collaboration === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|100px]] ==== Make the ProfiWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] 3d0f2c77c5ffe0379049d29ae01419976299a0ee Docker goodies 0 16 194 65 2015-11-16T07:15:50Z Wf 1 wikitext text/x-wiki === Copy a file from a container to the host system === * http://stackoverflow.com/a/22050116/1497139 <source lang='bash'> docker cp <containerId>:/file/path/within/container /host/path/target </source> === Attach to a running container === * http://askubuntu.com/questions/505506/how-to-get-bash-or-ssh-into-a-running-container-in-background-mode * http://askubuntu.com/a/507009/129227 <source lang='bash'> docker exec -it $containername /bin/bash </source> === Remove untagged docker images === http://stackoverflow.com/a/28377696/1497139 <source lang='bash'> docker rmi -f $(docker images -f "dangling=true" -q) </source> === get logs of a container === <source lang='bash'> docker logs $containername </source> === remove old unused docker containers === * http://stackoverflow.com/a/17237701/1497139 <source lang='bash'> docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs --no-run-if-empty docker rm </source> === Support for build env variables === Upcoming feature in 1.9? * https://github.com/docker/docker/issues/6822 28512e25ec2c48df603ab1418c3d50f793c687e9 File:BITPlanLogo2012.svg 6 2 196 2 2015-11-21T18:10:49Z Wf 1 Wf uploaded a new version of [[File:BITPlanLogo2012.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 SiDIFTemplates 0 31 198 69 2015-12-28T13:35:55Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:35:53Z wikitext text/x-wiki __TOC__ == Overview == This page contains {{sidif}} templates. These templates can be used as a template for a {{Link|target=Template:Wikitask}}. For convenience there is a template {{Link|target=Template:TopicWikitasks}} that creates a set of wikitasks for some of the templates below. == Templates == === category === <source lang='java' id='category' cache='true'> @include(wiki.SiDIFTemplates.defs) @// macro to create pageschema from simela triples @def pageschema(Topic topic) { @escape("xml") { <PageSchema> <semanticforms_Form name="@topic.name"> <standardInputs freeTextLabel="Free text"/> </semanticforms_Form> <Template name="@topic.name" format="standard"> @for (Property property:topic.propertiesByIndex()) { <Field name="@property.name"> <semanticforms_FormInput> <InputType>text</InputType> </semanticforms_FormInput> <semanticmediawiki_Property name="@(topic.name) @(property.name)"> <Type>Text</Type> </semanticmediawiki_Property> </Field> } </Template> </PageSchema> } } @// generate the category for the given topic @def category(Topic topic) { __NOTOC__ @// show the wikiDocumentation for this category {{#ask: [[Topic name::@(topic.name)]] | ?Topic wikiDocumentation= | mainlabel=-}} @(topic.pluralName) may be added and edited with the form [[has default form::@(topic.name)]] * [[List of @(topic.pluralName)]] <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> @topic.name @(i18n("description")) <div class="mw-collapsible-content"> @uml("uml",topic) * [[Help:@topic.name]] * [[Concept:@topic.name]] * [[:Template:@topic.name]] * [[:Form:@topic.name]] === Properties === @for (Property property:topic.propertiesByIndex()) { * [[Property:@(topic.name) @(property.name)]] } </div> </div> } @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @category(contextSetting.getMaintopic()) </source> === listof === <source lang='java' id='listof' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the list of page for the given topic @def listof(Topic topic) { __NOCACHE__ @topicheader(topic) == @topic.pluralName == {{#forminput:form=@topic.name|button text=add @topic.name}} @("{{")#ask: [[Concept:@topic.name]] @for (Property property:topic.propertiesByIndex()) { | ?@topic.name @(property.name) = @property.name } @("}}") <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> === SiDIF === <div class="mw-collapsible-content"> @("{{")#ask: [[Concept:@topic.name]] | ?#=pageid @for (Property property:topic.propertiesByIndex()) { | ?@topic.name @property.name = @property.name } | mainlabel=- | format=template | named args=yes | template=@topic.name | userparam=sidif | limit=@topic.listLimit @("}}") </div> </div> [[:Category:@topic.name]] } @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @listof(contextSetting.getMaintopic()) </source> === concept === <source lang='java' id='concept' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the given topic as a concept @def topic(Topic topic) { __NOCACHE__ @("{{")Topic |name=@topic.name |pluralName=@if (topic.pluralName) {@(topic.pluralName)} else { @(topic.name)s } |icon=@topic.icon |iconUrl=@topic.iconUrl |documentation=@topic.documentation |wikiDocumentation=@topic.wikiDocumentation |defaultstoremode=@topic.defaultstoremode |listLimit=@topic.listLimit |cargo=@topic.cargo |context=@topic.context |storemode=property @("}}") @("{{")Topic |viewmode=masterdetail |storemode=none @("}}") {{#forminput:form=Property|button text=add Property}} === Documentation === @topic.wikiDocumentation @uml("uml",topic) @("{{")#concept: @if (topic.conceptProperty) { [[@(topic.name) @(topic.conceptProperty.name)::+]] } else { [[Category:@topic.name]] } |@(topic.pluralName) @seealso(topic) @("}}") [[Category:@topic.name]] } @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @topic(contextSetting.getMaintopic()) </source> === propertiesdefs === <source lang='java' id='propertiesdefs' cache='true'> @include(wiki.SiDIFTemplates.defs) @// properties for a specific Topic @def property(Topic topic, Property property) { @{ String topicWithConcept=topic.pageid; if (topicWithConcept.startsWith("Konzept:")) { topicWithConcept=topicWithConcept.replace("Konzept:","Concept:"); } if (!topicWithConcept.startsWith("Concept:")) { topicWithConcept="Concept:"+topicWithConcept; } } @("{{")Property |name=@property.name |label=@property.label |documentation=@property.documentation |type=Special:Types/@property.type |index=@property.index |sortPos=@property.sortPos |primaryKey=@property.primaryKey |mandatory=@property.mandatory |namespace=@property.namespace |size=@property.size |uploadable=@property.uploadable |defaultValue=@property.defaultValue |inputType=@property.inputType |allowedValues=@property.allowedValues |values_from=@property.values_from |showInGrid=@property.showInGrid |isLink=@property.isLink |topic=@(topicWithConcept) |storemode=property @("}}") [[Has type::@property.type]] This is a Property with type @("{{#show: {{FULLPAGENAMEE}} | ?Property type#- }}") } @// properties for the given topic @def properties(Topic topic) { == properties of @(topic.name) == @for (Property property:topic.getProperties()) { === [[Property:@(topic.name) @(property.name)]] === <pre> @(property(topic,property)) </pre> } } </source> === properties === <source lang='java' id='properties' cache='true'> @include(wiki.SiDIFTemplates.propertiesdefs) @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @properties(contextSetting.getMaintopic()) </source> === instances === <source lang='java' id='instances' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @// here some java code is declared and executed @// the resulting variables can be used as template variables later @{ TripleQuery query=tripleStore.query(); TripleQuery topics=query.query(null,"isA","Topic"); String maintopic=wikiTask.getParams(); } @def wikison(TripleQuery query,String topicName, String name) { @("{{")@topicName @{ TripleQuery properties=query.query(name,null,null) } |name=@name @for (Triple property:properties.getTriples()) { |@property.getPredicate()=@property.getObject() } |storeMode=subobject @("}}") } @def wikison1toN(TripleQuery query,String topicName,String link,String linkTopicName) { @{TripleQuery instances=query.query(null,"isA",topicName) } @for (Triple instance:instances.getTriples()) { @wikison(query,topicName,instance.getSubject().toString()) @{TripleQuery linstances=query.query(null,link,instance.getSubject().toString()) } @for (Triple linstance:linstances.getTriples()) { @wikison(query,linkTopicName,linstance.getSubject().toString()) } } } @wikison1toN(query,maintopic,"answer","ZAnswer") [[Category:@maintopic]] </source> === form === <source lang='java' id='form' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the form for the given topic @def form(Topic topic) { <noinclude> This is the @("{{smartMediaWiki}}")-Form for "@topic.name". Create a new @topic.name by entering a new pagename for a @topic.name into the field below. If you enter an existing @topic.name pagename - you will edit the @topic.name with that pagename. @{ String multiple=""; if ("subobject".equals(topic.defaultstoremode)) { multiple="|multiple"; } } @("{{")#forminput:form=@topic.name|values from concept=@(topic.name)@("}}") </noinclude><includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> @formtemplate(topic,multiple) @("'''Freitext:'''") @("{{{standard input|free text|rows=10}}}") @("{{{standard input|summary}}}") @("{{{standard input|minor edit}}} {{{standard input|watch}}}") @("{{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}}") </includeonly> }@// avoid newline @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @form(contextSetting.getMaintopic()) </source> === template === <source lang='java' id='template' cache='true'> @include(wiki.SiDIFTemplates.defs) @// show the given property Label @def String propertyLabel(Property property) { if ((property.label!=null) && (!"".equals(property.label.trim()))) {return property.label;} else {return property.name;} } @// show the given Property @def showProperty(Property property) { @{ String linkPre=""; String linkPost=""; String namespace=""; if ((property.type!=null) && (property.type.endsWith("Page"))) { linkPre="[[";linkPost="]]";} // do not do namespace handling at this time // use map namespace from mediawik-japi! // if (property.namespace!=null) { namespace=property.namespace+":";} }@{{#if:{{{@(property.name)|}}}|@(linkPre)@(namespace)@("{{{")@(property.name)@("|}}}")@(linkPost)|}} } @// set the given Property @def setProperty(Property property){ @(property.name)=@("{{{")@(property.name)|@("}}}") } @// sidif - newline relevant @def sidif(Topic topic) { @("{{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}}") isA @(topic.name)<br>@("|}}")@for (Property property:topic.propertiesByIndex()){@// avoid newline @("{{#if:{{{")?@(property.name)@("|}}}|")"@("{{{")?@(property.name)@("}}}")" is @property.name of it <br>|@("}}")} } @// includeonly part of wiki template @def includeonly(Topic topic, boolean withComment) { @("{{#switch:"){{{userparam|}}}|sidif=@sidif(topic) |#default=@("{{#switch:"){{{storemode|}}} |none= @if ("subobject".equals(topic.defaultstoremode)) { |subobject=@("{{#subobject:-") |isA=@(topic.name) @for (Property property:topic.propertiesByIndex()) { |@(topic.name) @setProperty(property) } @("}}")@//#subobject } |@("{{#set:") |isA=@(topic.name) @for (Property property:topic.propertiesByIndex()) { |@topic.name @setProperty(property) } @("}}")@//#set @("}}")@//#switch @("{{#switch:") {{{viewmode|}}} |masterdetail= @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @if (topicLink.targetTopic) { === @(topicLink.targetRole) === @("{{")#ask:[[Concept:@(topicLink.targetTopic.name)]][[@(topicLink.targetTopic.name) @(topicLink.sourceRole)::@("{{FULLPAGENAME}}")]] @for (Property property:topicLink.targetTopic.propertiesByIndex()) { | ?@(topicLink.targetTopic.name) @property.name = @property.name } @("}}") } } |tableheader=@("{{{!}}") class='wikitable' @{String delim="!";} @for (Property property:topic.propertiesByIndex()) {@(delim)@(property.name)@{delim="!!";}} @("\n{{!}}-") |tablerow= @{delim="{{!}}"} @for (Property property:topic.propertiesByIndex()) {@(delim){{{@(property.name)|}}}@{delim="{{!}}{{!}}"}} @("\n{{!}}-") |tablefooter=@("{{!}}}") |labelfield= @for (Property property:topic.propertiesByIndex()) {@(property.name)=@(showProperty(property))<br>} |#default=@("{{{!}}") class='wikitable' ! colspan='2' @("{{!}}")@(topic.name) @("{{!}}-") @("{{#switch:"){{{storemode|}}}|property= ! colspan='2' style='text-align:left' {{!}} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/@(topic.name)/{{FULLPAGENAME}}|title=edit}} @("{{!}}-") @("}}") @for (Property property:topic.propertiesByIndex()) {@("!")@(propertyLabel(property)) @("{{!}}")&nbsp;@(showProperty(property)) @("{{!}}")- } @("{{!}}}") @("}}")@//#switch @("}}")@//#switch @// do not add subobjects to category - this would make selecting the default form difficult @if ("property".equals(topic.defaultstoremode)) { [[Category:@topic.name]] } } @// wikiSonUsage @def wikiSonUsage(Topic topic,String modeLine) { <pre>@("{{")@topic.name @for (Property property:topic.propertiesByIndex()) { |@property.name= } |@modeLine @("}}") </pre> }@// avoid newline @// noinclude part of wiki template @def noinclude(Topic topic) { This is the template {{Link|target=Template:@topic.name|title=@topic.name}}. It belongs to the concept/topic {{Link|target=:Concept:@topic.name}}<br> You may find examples for the use of this template via the {{Link|target=List of @(topic.pluralName)}}. === Usage === @{ String[] storeModes={"subobject","property","none"};} @for (String storeMode:storeModes) { ==== storemode @storeMode ==== @wikiSonUsage(topic,"storemode="+storeMode) } @{ String[] viewModes={"tableheader","tablerow","tablefooter","labelfield"};} @for (String viewMode:viewModes) { ==== viewmode @viewMode ==== @wikiSonUsage(topic,"viewmode="+viewMode) } === Source (pretty printed) === @("<source") lang='html4strict'> @includeonly(topic,true) @("<")@("/source>") === Source === Click on "Edit" to edit the noinclude-part Source of this Template. [[Category:Template]] }@// avoid newline @def template(Topic maintopic) {<noinclude> @copyright() @noinclude(maintopic) </noinclude><includeonly>@includeonly(maintopic,false)</includeonly>}@// avoid newline @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @template(contextSetting.getMaintopic()) </source> === javacodegen === <source lang='java' id='javacodegen' cache='true'> @include(wiki.SiDIFTemplates.defs) === java code === @("<source lang='java' id='javacode'>") @verbatim() { @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } } @// user code section @// smartGenerator compatible like: @// // >>>{User defined import section}{::com::bitplan::ooa::OOAAssociation}{S37C96C0C016C} @def printUserCode(String codetype,String key,String modelID) { // >>>@("{")@(codetype)@("}")@("{")@(key)@("}")@("{")@(modelID)@("}") // <<<@("{")@(codetype)@("}")@("{")@(key)@("}")@("{")@(modelID)@("}") } @// first character to Upper @def String firstToUpper(String string) { StringBuffer sb = new StringBuffer(string); sb.replace(0, 1, string.substring(0, 1).toUpperCase()); return sb.toString(); } @// generate javacode for the given topic @def javacode(Context context) { @("@def static {") /** * Base class */ static abstract class TopicBase { // each Topic has a pageid - for non subobject thats the pagename public String pageid; /** * get a WikiSon version of the given name value * * @@param name * @@param value * @@return - the string representation */ public String toWikiSon(String name, String value) { String result = "<!-- " + name + " is null-->\n"; if (value != null) result = "|" + name + "=" + value + "\n"; return result; } /** * get the propertySidif of the given property * * @@param name * @@param value * @@return */ public static String propertySiDIF(String name, String value, String type) { // default is an empty string - no property line for emtpy values String result = ""; // if the value is not empty if ((value != null) && (!("".equals(value.trim())))) { // do we need to quote the result? String quote = ""; // this depends on the Type if ("Text".equals(type)) { quote = "\""; } // create a SIDIF Property line like // "John" is lastname of it result += quote + value + quote + " is " + name + " of it\n"; } // return the SiDIF property line return result; } /** * get me as a String * * @@param name * @@param value * @@return */ public static String propertySiDIF(String name, String value) { String result = propertySiDIF(name, value, "Text"); return result; } /** * check if the given boolean String value is true * * @@param value * @@return true if the value is not null and has true/TRUE as it's string * content */ public boolean isTrue(String value) { boolean result = false; if (value != null && value.toLowerCase().equals("true")) { result = true; } return result; } /** * initialize */ public void init(TripleQuery query) { } } // TopicBase @for(Topic topic:context.getTopics()) { /** * @topic.name * @topic.documentation */ public static class @topic.name extends TopicBase @("{") @for(Property property:topic.getProperties()) { public String @property.name; } @for(Property property:topic.getProperties()) { public String get@(firstToUpper(property.name))() { return @property.name; } public void set@(firstToUpper(property.name))(String p@(firstToUpper(property.name))) { @property.name=p@(firstToUpper(property.name)); } } /** * convert this @topic.name to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * convert this @topic.name to a WikiSon string */ public String toWikiSon() { String wikison= "{{@topic.name\n"; @for(Property property:topic.getProperties()) { wikison+=toWikiSon("@property.name",@property.name); } wikison+="}}\n"; return wikison; } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for @topic.name */ public @(topic.name)() {} /** * construct a @topic.name from the given Triple * @("@")param query - the TripleQuery to get the triples from * @("@")param p@(topic.name)Triple - the triple to construct me from */ public @(topic.name)(TripleQuery query,Triple p@(topic.name)Triple) @("{") this(query,p@(topic.name)Triple.getSubject().toString()); @("} // constructor") /** * construct a @topic.name from the given pageId * @("@")param query - the TripleQuery to get the triples from * @("@")param pageid - pageid */ public @(topic.name)(TripleQuery query,String pageid) @("{") this.pageid=pageid; @for(Property property:topic.getProperties()) { Triple @(property.name)Triple=query.selectSingle(pageid,"@property.name",null); if (@(property.name)Triple==null) @(property.name)Triple=query.selectSingle(pageid,"Property:@(topic.name)_@property.name",null); if (@(property.name)Triple!=null) @(property.name)=@(property.name)Triple.getObject().toString(); } init(query); @("}") // constructor for @topic.name @printUserCode("user defined topic code",topic.name,topic.name) @("}") // class @topic.name /** * Manager for @topic.name */ public static class @(topic.name)Manager extends TopicBase @("{") public String topicName="@(topic.name)"; public transient List<@topic.name> m@(topic.name)s=new ArrayList<@(topic.name)>(); public transient Map<String,@topic.name> m@(topic.name)Map=new LinkedHashMap<String,@(topic.name)>(); /** * get my @(topic.pluralName) */ public List<@topic.name> get@(topic.pluralName)() { List<@topic.name> result=this.m@(topic.name)s; return result; } /** * add a new @(topic.name) */ public @(topic.name) add(@(topic.name) p@(topic.name)) { m@(topic.name)s.add(p@(topic.name)); m@(topic.name)Map.put(p@(topic.name).getPageid(),p@(topic.name)); return p@(topic.name); } /** * add a new @(topic.name) from the given triple */ public @(topic.name) add(TripleQuery query,Triple p@(topic.name)Triple) { @topic.name l@topic.name=new @(topic.name)(query,p@(topic.name)Triple); add(l@(topic.name)); return l@(topic.name); } // reinitialize my m@(topic.name) map public void reinit() { m@(topic.name)Map.clear(); for (@(topic.name) l@(topic.name):m@(topic.name)s) { m@(topic.name)Map.put(l@(topic.name).getPageid(),l@(topic.name)); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static @(topic.name)Manager fromJson(String json) { @(topic.name)Manager result=JSON.parseObject(json, @(topic.name)Manager.class); result.reinit(); return result; } // default constructor for @(topic.name) Manager public @(topic.name)Manager() {} // add @(topic.pluralName) from the given query public void add@(topic.pluralName)(TripleQuery p@(topic.name)Query,TripleQuery query) { if (p@(topic.name)Query!=null) { for (Triple l@(topic.name)Triple:p@(topic.name)Query.getTriples()) { add(query,l@(topic.name)Triple); } } } // construct me from the given triple Query query public @(topic.name)Manager(TripleQuery query) @("{") // first query the SiDIF bases triplestore TripleQuery l@(topic.name)Query=query.query(null,"isA","@topic.name"); add@(topic.pluralName)(l@(topic.name)Query,query); // then the SMW triplestore l@(topic.name)Query=query.query(null,"Property:IsA","@topic.name"); add@(topic.pluralName)(l@(topic.name)Query,query); init(query); @("}") // constructor for @topic.name Manager @printUserCode("user defined topicmanager code",topic.name,topic.name) @("}") // class @topic.name Manager } @// end static @("}") } @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); Context context=ContextFactory.getInstance().getContext(contextSetting); } @javacode(context) </source> === help === <source lang='java' id='help'> @include(wiki.SiDIFTemplates.defs) @def help(Topic topic) { == Help for @(topic.name) == @topicheader(topic) === Documentation === @topic.wikiDocumentation === Example @(topic.pluralName) === {{#ask: [[Concept:@(topic.name)]] }} === Properties === {{#ask: [[Concept:Property]][[Property topic::Concept:@(topic.name)]] | ?Property documentation = documentation | ?Property type = type | ?Property name = name | ?Property label = label | ?Property allowedValues = allowedValues | ?Property mandatory = mandatory | ?Property uploadable = uploadable |format=table }} @uml("uml",topic) @seealso(topic) [[Category:@topic.name]] } @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @help(contextSetting.getMaintopic()) </source> === debug === <source lang='java' id='debug'> @include(wiki.SiDIFTemplates.java) @for (Topic topic:mTopicManager.mTopics) { == @(topic.pageid) == === Concept property === @if (topic.conceptProperty) { * @topic.conceptProperty.pageid name=@topic.conceptProperty.name } @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { === source TopicLink @(topicLink.name) === * @topicLink.sourceMultiple @topicLink.source @(topicLink.sourceRole) * @topicLink.targetMultiple @topicLink.target @(topicLink.targetRole) } @for (TopicLink topicLink:topic.targetTopicLinks.mTopicLinks) { === target TopicLink @(topicLink.name) === * @topicLink.sourceMultiple @topicLink.source @(topicLink.sourceRole) * @topicLink.targetMultiple @topicLink.target @(topicLink.targetRole) } @for (Property property:topic.getProperties()) { === Property @(property.name) === <pre> [[Has type::@property.type]] @("{{")Property |name=@property.name |documentation=@property.documentation |type=Special:Types/@property.type |label=@property.label |primaryKey=@property.primaryKey |mandatory=@property.mandatory |uploadable=@property.uploadable |size=@property.size |defaultValue=@property.defaultValue |inputType=@property.inputType |allowedValues=@property.allowedValues |topic=Concept:@topic.pageid @("}}") [[has default form::Property]] This is a Property with type @("{{#show: {{FULLPAGENAMEE}} | ?Property type#- }}") </pre> } } </source> === tripletable === <source lang='java' id='tripletable' cache='true'> @include(wiki.SiDIFTemplates.java) @// macro to show a table of triples @def tripletable(String title,List<org.sidif.triple.Triple> triples) { === @title === {| class="wikitable sortable" ! subject !! predicate !! object |- @for (org.sidif.triple.Triple triple:triples) { |@triple.getSubject() || @triple.getPredicate() || @triple.getObject() |- } |} } @tripletable("all triples",query.getTriples()) @tripletable("topics",topics.getTriples()) </source> === defs === <source lang='java' id='defs' cache='true'> @include(wiki.SiDIFTemplates.java) @// macro to show BITPlan copyright @def copyright() {<!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- -->@// avoid newline } @// error handling - get a stack trace @def String getStackTrace (Throwable t) { StringWriter sw = new StringWriter(); t.printStackTrace(new PrintWriter(sw)); return sw.toString(); } @// macro to to internationalize generator results @def String i18n(String text) { String targetLang=wikiTask.getWiki().getSiteInfo().getLang(); return text; } @// macro for the topic header of a topic @def topicheader(Topic topic) { {{#ask: [[Topic name::@(topic.name)]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} } @// macro for the form template of a topic @def formtemplate(Topic topic,String multiple) { <!-- @(topic.name) --> @("{{{")for template|@(topic.name)@(multiple)@("}}}") @("{|") class="wikitable" ! colspan='2'| @topic.name |- @for (Property property:topic.propertiesByIndex()) { ! @property.label: <!-- @property.type @property.name --> @{ String allowedValues=""; if (property.allowedValues!=null) { allowedValues="|values="+property.allowedValues; } String mandatory=""; if ("true".equals(property.mandatory)) { mandatory="|mandatory"; } String uploadable=""; if ("true".equals(property.uploadable)) { uploadable="|uploadable"; } String values_from=""; if (property.values_from!=null) { values_from="|values from "+property.values_from; } String defaultValue=""; if (property.defaultValue!=null) { defaultValue="|default="+property.defaultValue; } String size=""; if (property.size!=null) { size="|size="+property.size; } String inputtype=""; if (property.inputType!=null) { inputtype="|input type="+property.inputType; } if ("textarea".equals(property.inputType)) { inputtype+="|editor=wikieditor"; } } | @("{{{")field|@(property.name)|property=@(topic.name) @(property.name)@(inputtype)@(size)@(mandatory)@(uploadable)@(values_from)@(allowedValues)@(defaultValue)@("}}}") |- } @("|}") @("{{{")field|storemode|default=@(topic.defaultstoremode)|hidden@("}}}") @("{{{end template}}}") <!-- @(topic.name) --> } @// macro to to show relevant links for a topic @def seealso(Topic topic) { see also * [[List of @(topic.pluralName)]] * [[Help:@topic.name]] * [[Concept:@topic.name]] * [[:Category:@topic.name]] * [[:Template:@topic.name]] * [[:Form:@topic.name]] topic links: @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @if (topicLink.targetTopic) { * [[:Category:@(topicLink.targetTopic.name)]] } } } @// macro to create skin params for BITPlan corporate identity @def bitplanumlci(int fontSize) { ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager @{ String skinparams[] = {"note", "component", "package", "usecase","activity","classAttribute","interface","class","object"}; } @for (String skinparam:skinparams) { skinparam @skinparam { BackGroundColor #FFFFFF FontSize @fontSize ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } } hide Circle ' end of skinparams ' } @// macro to create Relation @def plantUmlRelation(TopicLink topicLink) { @{ String sourceMany="1"; String targetMany="1"; if ("true".equals(topicLink.sourceMultiple)) sourceMany="*"; if ("true".equals(topicLink.targetMultiple)) targetMany="*"; } @(topicLink.source) "@(topicLink.sourceRole) (@(sourceMany))" -- "@(topicLink.targetRole)(@(targetMany))" @(topicLink.target) } @// macro to create uml from simela triples @def uml(String title,Topic topic) { === @title === <uml> title @topic.name note as @(topic.name)DiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as @(topic.name)Note @(topic.documentation) end note class @topic.name @("{") @for (Property property:topic.propertiesByIndex()) { @(property.type) @(property.name) } @("}") @(topic.name)Note .. @(topic.name) @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @plantUmlRelation(topicLink) } @for (TopicLink topicLink:topic.targetTopicLinks.mTopicLinks) { @plantUmlRelation(topicLink) } @bitplanumlci(12) </uml> } </source> === dialogdefs === <source lang='java' id='dialogdefs' cache='true'> @import java.net.URLEncoder @// JQuery imports @def jquery(String indent) { @(indent)<!-- JQuery Code for resthtmlview --> @(indent)<script src="/resthtmlview/js/jquery-1.10.2.min.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery-ui-1.10.0.custom.js"></script> @(indent)<script src="/resthtmlview/js/i18n/grid.locale-en.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/ui.multiselect.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery.ui.message.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery.jqGrid.min.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/redactor.min.js" type="text/javascript"></script> @(indent)<!-- load jQuery and tablesorter scripts --> @(indent)<script src="/resthtmlview/js/jquery.tablesorter.min.js"></script> @(indent)<script src="/resthtmlview/js/jquery.tablesorter.widgets.js"></script> @(indent)<script src="/resthtmlview/js/jquery.metadata.js"></script> @(indent)<!-- JQuery Styles for resthtmlview --> @(indent)<link href="/resthtmlview/css/form.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/messages.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/bitplanfadetogrey/jquery-ui-1.10.1.custom.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/ui.jqgrid.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<link href="/resthtmlview/css/ui.multiselect.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<!-- Tablesorter: required --> @(indent)<link href="/resthtmlview/css/theme.blue.css" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/searchFilter.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<link href="/resthtmlview/css/redactor.css" type="text/css" media="screen" rel="stylesheet" /> } @// CSS Style definitions @def style(String indent) { @(indent)<style> @(indent) body { height:100% } @(indent) #container { @(indent) background-color: #f0f0f0; /* lightblue background */ @(indent) width: 100%; /* Container has full width */ @(indent) margin: auto; /* center container */ @(indent) min-height: 100%; /* minimum height 100 % (for modern browsers) */ @(indent) height: auto !important; /* important Behel (for modern browsers */ @(indent) height: 100%; /* IE shall work as specified */ @(indent) overflow: hidden !important; /* firefox scrollbar */ @(indent) } @(indent)</style> } @// dialog definition @def dialog(String indent) { @(indent)<script type="text/javascript"> @(indent) $(document).ready(function() { @(indent) var wWidth = $(window).width(); @(indent) var wHeight = $(window).height(); @(indent) var dTopy = wHeight * 0.25; // top at 25% of window height @(indent) var dTopx = wWidth * 0.25; // left at 25% of window width @(indent) var dWidth = 'auto'; //this will make the dialog 98% of the window size @(indent) var dHeight = 'auto'; @(indent) $( "#dialog" ).dialog({ @(indent) // position : [ dTopx, dTopy ], @(indent) width : dWidth, @(indent) height : dHeight, @(indent) modal : true, @(indent) // title: ""+wWidth+"x"+wHeight+" "+dTopx+":"+dTopy, @(indent) my: "center", @(indent) at: "center", @(indent) of: window, @(indent) show : { @(indent) effect : "blind", @(indent) duration : 500 @(indent) }, @(indent) hide : { @(indent) effect : "fade", @(indent) duration : 500 @(indent) } @(indent) }); @(indent) // tabs @(indent) $( "#tabs" ).tabs(); @(indent) // tablesorter @(indent) $.extend( $.tablesorter.defaults, { @(indent) theme: 'blue', @(indent) widthFixed: false @(indent) }); @(indent) $(".sortable").tablesorter(); @(indent) }); @(indent)</script> } @// display the given stockicon @def String stockicon(String name,int size,String alt,String title) { String iconhref="/stockicons/"+size+"x"+size+"/shadow/"+name+".png"; String img="<img src='"+iconhref+"' alt='"+alt+"' title='"+title+"' width='"+size+"px' height='"+size+"px' >"; return img; } @// url encode the given txt @def String urlEncode(String txt) { String result=URLEncoder.encode(txt, "UTF-8"); return result; } @def selectall() { <script> /** * http://stackoverflow.com/questions/432493/how-do-you-access-the-matched-groups-in-a-javascript-regular- * expression * examples: * * var matches = getRegexMatches(/(dog)/, "dog boat, cat car dog"); * console.log(matches); * * var matches = getRegexMatches(/(dog|cat) (boat|car)/, "dog boat, cat car"); * console.log(matches); */ function getRegexMatches(regex, string) { if(!(regex instanceof RegExp)) { return "ERROR"; } else { if (!regex.global) { // If global flag not set, create new one. var flags = "g"; if (regex.ignoreCase) flags += "i"; if (regex.multiline) flags += "m"; if (regex.sticky) flags += "y"; regex = RegExp(regex.source, flags); } } var matches = []; var match = regex.exec(string); while (match) { if (match.length > 2) { var group_matches = []; for (var i = 1; i < match.length; i++) { group_matches.push(match[i]); } matches.push(group_matches); } else { matches.push(match[1]); } match = regex.exec(string); } return matches; } /** * get the select_row or select_col checkboxes dependening on the selectType row/col */ function getSelectCheckboxes(selectType) { var regex=new RegExp("select_"+selectType+"_"); var result= $('input').filter(function() {return this.id.match(regex);}); return result; } /** * matrix selection logic * the goal is to provide select all / select row x / select col x * checkboxes that will allow to * select all: select all grid elements * select row: select the grid elements in the given row * select col: select the grid elements in the given col * * There is a naming convention for the ids and css style classes of the the selectors and elements: * select all -> id: selectall * select row -> id: select_row_row e.g. select_row_2 * select col -> id: select_col_col e.g. select_col_3 * grid element -> class checkBoxClass col_col row_row e.g. checkBoxClass row_2 col_3 */ function checkSelectStates() { // get the list of grid checkbox elements // all checkboxes var all = $('.checkBoxClass'); // all select row check boxes var rows = getSelectCheckboxes('row'); // all select columnn check boxes var cols = getSelectCheckboxes('col'); // console.log("rows: "+rows.length+", cols:"+cols.length+" total: "+all.length); // get the total number of checkboxes in the grid var allLen=all.length; // get the number of checkboxes in the checked state var filterLen=all.filter(':checked').length; // console.log(allLen+"-"+filterLen); // if all checkboxes are in the checked state // set the state of the selectAll checkbox to checked to be able // to deselect all at once, otherwise set it to unchecked to be able to select all at once if (allLen == filterLen) { $("#selectall").prop("checked", true); } else { $("#selectall").prop("checked", false); } // now check the completeness of the rows for (row = 0; row < rows.length; row++) { var rowall=$('.row_'+row); var rowchecked=rowall.filter(':checked'); if (rowall.length == rowchecked.length) { $("#select_row_"+row).prop("checked", true); } else { $("#select_row_"+row).prop("checked", false); } } // now check the completeness of the cols for (col = 0; col < cols.length; col++) { var colall=$('.col_'+col); var colchecked=colall.filter(':checked'); if (colall.length == colchecked.length) { $("#select_col_"+col).prop("checked", true); } else { $("#select_col_"+col).prop("checked", false); } } } $(document).ready(function () { // handle click event for Select all check box $("#selectall").click(function () { // set the checked property of all grid elements to be the same as // the state of the SelectAll check box var state=$("#selectall").prop('checked'); $(".checkBoxClass").prop('checked', state); getSelectCheckboxes('row').prop('checked', state); getSelectCheckboxes('col').prop('checked', state); }); // handle clicks within the grid $(".checkBoxClass").on( "click", function() { checkSelectStates(); }); $('.checkboxSelect').on( "click", function() { var matchRowColArr=getRegexMatches(/select_(row|col)_([0-9]+)/,this.id); var matchRowCol=matchRowColArr[0]; // console.log(matchRowCol); if (matchRowCol.length==2) { var selectType=matchRowCol[0]; // e.g. row var selectIndex=matchRowCol[1]; // e.g. 2 // console.log(this.id+" clicked to select "+selectType+" "+selectIndex); // e.g. .row_2 $("."+selectType+"_"+selectIndex) .prop('checked', $("#select_"+selectType+"_"+selectIndex).prop('checked')); checkSelectStates(); } }); }); </script> } </source> === java === The debugging version of the SiDIF Templates <source lang='java' id='java' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.TripleStore @import org.sidif.triple.Triple @import org.sidif.wiki.SMW_Triples @import com.alibaba.fastjson.JSON @// import instead of src @import com.bitplan.topic.TopicStatic.YT @import com.bitplan.topic.TopicStatic.Context @import com.bitplan.topic.TopicStatic.Topic @import com.bitplan.topic.TopicStatic.Property @import com.bitplan.topic.TopicStatic.SMW_Type @import com.bitplan.topic.TopicStatic.TopicLink @import com.bitplan.topic.TopicStatic.ContextManager @import com.bitplan.topic.TopicStatic.TopicManager @import com.bitplan.topic.TopicStatic.PropertyManager @import com.bitplan.topic.TopicStatic.SMW_TypeManager @import com.bitplan.topic.TopicStatic.TopicLinkManager @import com.bitplan.topic.ContextFactory @import com.bitplan.topic.ContextSetting @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } </source> === javasrc === <source lang='java' id='javasrc' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.TripleStore @import org.sidif.triple.Triple @import org.sidif.wiki.SMW_Triples @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore com.bitplan.topic.TopicManager topicManager } @def static { /** * Base class */ static abstract class TopicBase { /** * initialize */ public void init(TripleQuery query) { } } // TopicBase /** * technical part of Y-Principle * * @author wf * */ static class YT { // Y-Principle technical parts public static YT yts[] = { new YT("Category", "Category", "category", "/images/d/d6/Category_Icon.png"), new YT("Concept", "Concept", "concept", "/images/2/25/Concept_Icon.png"), new YT("Form", "Form", "form", "/images/e/e5/Form_icon.jpg"), new YT("Help", "Help", "help", "/images/7/7a/Help_Icon.png"), new YT("Listof", "List of", "listof", "/images/7/7f/List_Icon.png"), new YT("Template", "Template", "template", "/images/6/61/Icon_template.png"), new YT("Properties", "Properties", "properties", "/images/6/6a/Element_into_input.png"), new YT("Java", "Java", "javacodegen", "/images/3/38/Java_icon.png") }; /** * get the YT with the given name * * @param ytname */ public static YT getYT(String ytname) { for (YT yt : yts) { if (yt.name.equals(ytname)) { return yt; } } return null; } String name; String label; String iconUrl; String template; /** * construct me with name label and icon url * * @param name * @param label * @param iconUrl */ public YT(String name, String label,String template, String iconUrl) { super(); this.name = name; this.label = label; this.template=template; this.iconUrl = iconUrl; } /** * a part where name and label is different * * @param name * @param label */ public YT(String name, String label) { this(name,label,name.toLowerCase(),"Datei:"+name+".png"); } /** * a part where name and label is the same * * @param name */ public YT(String name) { this(name, name); } /** * get the page Title for the given topic name * * @param topicname * @return */ public String getPageTitle(Topic topic) { String result = this.name + ":" + topic.name; if ("Listof".equals(name)) { result = "List_of_" + topic.pluralName.replace(" ","_"); } if ("Properties".equals(name)) { result = "Concept:" + topic.name.replace(" ","_")+"/Properties"; } return result; } } /** * Context A Context groups some topics like a Namespace/Package */ static class Context extends TopicBase { String pageid; String name; public String getName() { return name; } public void setName(String pName) { name = pName; } /** * convert this Context to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Context */ public Context() { } /** * construct a Context from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pContextTriple * - the triple to construct me from */ public Context(TripleQuery query, Triple pContextTriple) { this(query, pContextTriple.getSubject().toString()); } // constructor /** * construct a Context from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Context(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Context_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); init(query); } // constructor for Context // >>>{user defined topic code}{Context}{Context} /** * get the propertySidif of the given property * @param name * @param value * @return */ public String propertySiDIF(String name,String value, String type) { String result=""; String quote=""; if ("Text".equals(type)) { quote="\""; } if (value!=null) { result+=quote+value+quote+" is "+name+" of it\n"; } return result; } /** * get me as a String * @param name * @param value * @return */ public String propertySiDIF(String name,String value) { String result=propertySiDIF(name,value,"Text"); return result; } /** * return me as a SiDIF string * @return */ public String asSiDIF() { String result=""; result+="#\n"; result+="# Context:"+getName()+"\n"; result+="#\n"; result+=getPageid()+" isA Context\n"; result+=this.propertySiDIF("name", name); for (Topic topic:this.getTopics()) { result+="#\n"; result+="#"+topic.getName()+"\n"; result+="#\n"; result+=topic.name+" isA Topic\n"; result+=this.propertySiDIF("name", topic.name); result+=this.propertySiDIF("pluralName", topic.pluralName); result+=this.propertySiDIF("documentation",topic.documentation); result+=this.propertySiDIF("wikiDocumentation",topic.wikiDocumentation); result+=this.propertySiDIF("icon",topic.icon); result+=this.propertySiDIF("defaultstoremode", topic.defaultstoremode); result+=this.propertySiDIF("context", this.getName()); for (Property property:topic.getProperties()) { result+=topic.getName()+"_"+property.getName()+" addsTo it\n"; } for (Property property:topic.getProperties()) { result+=topic.getName()+"_"+property.getName()+" isA Property\n"; result+=propertySiDIF("name",property.name); result+=propertySiDIF("allowedValues",property.allowedValues); result+=propertySiDIF("defaultValue",property.defaultValue); result+=propertySiDIF("documentation",property.documentation); result+=propertySiDIF("inputType",property.inputType); result+=propertySiDIF("label",property.label); result+=propertySiDIF("mandatory", property.mandatory,"Boolean"); result+=propertySiDIF("namespace",property.namespace); result+=propertySiDIF("primaryKey",property.primaryKey,"Boolean"); result+=propertySiDIF("pageid",property.pageid); result+=propertySiDIF("size",property.size,"Number"); result+=propertySiDIF("topic",topic.getName()); } } return result; } // 1:n relation to topics TopicManager topics = new TopicManager(); /** * accessor for 1:n relation to topics * * @return */ public List<Topic> getTopics() { return topics.mTopics; } /** * recreate topics from a given list * @param pTopics */ public void setTopics(List<Topic> pTopics) { topics = new TopicManager(); topics.mTopics=pTopics; for (Topic topic:pTopics) { topics.mTopicMap.put(topic.getPageid(), topic); } } // <<<{user defined topic code}{Context}{Context} } // class Context /** * Manager for Context */ static class ContextManager extends TopicBase { public String topicName = "Context"; public List<Context> mContexts = new ArrayList<Context>(); public Map<String, Context> mContextMap = new LinkedHashMap<String, Context>(); /** * add a new Context */ public Context add(Context pContext) { mContexts.add(pContext); mContextMap.put(pContext.getPageid(), pContext); return pContext; } /** * add a new Context from the given triple */ public Context add(TripleQuery query, Triple pContextTriple) { Context lContext = new Context(query, pContextTriple); add(lContext); return lContext; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public ContextManager() { } // construct me from the given triple Query query public ContextManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lContextQuery = query.query(null, "isA", "Context"); for (Triple lContextTriple : lContextQuery.getTriples()) { add(query, lContextTriple); } // then the SMW triplestore lContextQuery = query.query(null, "Property:IsA", "Context"); for (Triple lContextTriple : lContextQuery.getTriples()) { add(query, lContextTriple); } init(query); } // constructor for Context Manager // >>>{user defined topicmanager code}{Context}{Context} public TopicManager mTopicManager; public PropertyManager mPropertyManager; /** * run pass 2 to link topics to context * * @return */ public List<String> pass2() { List<String> result = new ArrayList<String>(); for (Topic topic : mTopicManager.mTopics) { if (topic.context != null) { Context context = this.mContextMap.get(topic.context); if (context != null) { context.topics.mTopics.add(topic); } else { result.add("Context '" + topic.context + "' not found"); } } } for (Property property : mPropertyManager.mPropertys) { if (property.topic != null) { Topic topic = mTopicManager.mTopicMap.get(property.topic); if (topic != null) { // FIXME use an add function that also adds to the map topic.properties.mPropertys.add(property); } else { result.add("Topic '" + property.topic + "' not found"); } } } return result; } /** * construct me from a tripleStore * * @param tripleStore */ public ContextManager(TripleStore tripleStore) { this(tripleStore.query()); mTopicManager = new TopicManager(tripleStore.query()); mPropertyManager = new PropertyManager(tripleStore.query()); mTopicManager.configureTopics(); pass2(); } // <<<{user defined topicmanager code}{Context}{Context} } // class Context Manager /** * Topic A Topic is a Concept/Class/Thing/Entity */ static class Topic extends TopicBase { String pageid; String name; String pluralName; String icon; String wikiDocumentation; String documentation; String defaultstoremode; String context; public String getName() { return name; } public void setName(String pName) { name = pName; } public String getPluralName() { return pluralName; } public void setPluralName(String pPluralName) { pluralName = pPluralName; } public String getIcon() { return icon; } public void setIcon(String pIcon) { icon = pIcon; } public String getWikiDocumentation() { return wikiDocumentation; } public void setWikiDocumentation(String pWikiDocumentation) { wikiDocumentation = pWikiDocumentation; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getDefaultstoremode() { return defaultstoremode; } public void setDefaultstoremode(String pDefaultstoremode) { defaultstoremode = pDefaultstoremode; } public String getContext() { return context; } public void setContext(String pContext) { context = pContext; } /** * convert this Topic to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Topic */ public Topic() { } /** * construct a Topic from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pTopicTriple * - the triple to construct me from */ public Topic(TripleQuery query, Triple pTopicTriple) { this(query, pTopicTriple.getSubject().toString()); } // constructor /** * construct a Topic from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Topic(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Topic_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple pluralNameTriple = query.selectSingle(pageid, "pluralName", null); if (pluralNameTriple == null) pluralNameTriple = query.selectSingle(pageid, "Property:Topic_pluralName", null); if (pluralNameTriple != null) pluralName = pluralNameTriple.getObject().toString(); Triple iconTriple = query.selectSingle(pageid, "icon", null); if (iconTriple == null) iconTriple = query.selectSingle(pageid, "Property:Topic_icon", null); if (iconTriple != null) icon = iconTriple.getObject().toString(); Triple wikiDocumentationTriple = query.selectSingle(pageid, "wikiDocumentation", null); if (wikiDocumentationTriple == null) wikiDocumentationTriple = query.selectSingle(pageid, "Property:Topic_wikiDocumentation", null); if (wikiDocumentationTriple != null) wikiDocumentation = wikiDocumentationTriple.getObject().toString(); Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:Topic_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple defaultstoremodeTriple = query.selectSingle(pageid, "defaultstoremode", null); if (defaultstoremodeTriple == null) defaultstoremodeTriple = query.selectSingle(pageid, "Property:Topic_defaultstoremode", null); if (defaultstoremodeTriple != null) defaultstoremode = defaultstoremodeTriple.getObject().toString(); Triple contextTriple = query.selectSingle(pageid, "context", null); if (contextTriple == null) contextTriple = query.selectSingle(pageid, "Property:Topic_context", null); if (contextTriple != null) context = contextTriple.getObject().toString(); init(query); } // constructor for Topic // >>>{user defined topic code}{Topic}{Topic} PropertyManager properties = new PropertyManager(); TopicLinkManager sourceTopicLinks = new TopicLinkManager(); TopicLinkManager targetTopicLinks = new TopicLinkManager(); Property conceptProperty; // the Property to be used when selecting a // Concept /** * get the Properties * * @return */ public List<Property> getProperties() { return properties.mPropertys; } /** * initialize me with the given query * * @Override */ public void init(TripleQuery query) { TripleQuery propertyQuery = query.query(null, "addsTo", pageid); if (propertyQuery != null) { for (Triple property : propertyQuery.getTriples()) { properties.add(query, property); } } addTopicLinks(query, sourceTopicLinks, "source"); addTopicLinks(query, targetTopicLinks, "target"); if (name == null) { name = pageid; } if (pluralName == null) { pluralName = name + "s"; } // add Properties for targetTopicLinks // this is the referenced to the "neighbour" Topic for (TopicLink topicLink : targetTopicLinks.mTopicLinks) { Property property = new Property(); property.pageid = topicLink.sourceRole; property.name = property.pageid; property.label = property.name; property.type = "Page"; // make sure the form shows the neighbour concept as an option String sourceName = topicLink.source; // remove "Concept:" prefix !!! FIXME - this is language dependent // and a horrible work around for the time being sourceName = sourceName.replace("Concept:", ""); sourceName = sourceName.replace("Konzept:", ""); property.values_from = "concept=" + sourceName; property.inputType = "dropdown"; properties.mPropertys.add(property); } } /** * add the topicLinks * * @param query * - the TripleQuery to get the triples from * @param tm * - the TopicLinkManager to add the topic links to * @param predicate * - the predicate to be used for linking */ public void addTopicLinks(TripleQuery query, TopicLinkManager tm, String predicate) { TripleQuery linkQuery = query.query(null, predicate, pageid); if (linkQuery != null) { for (Triple linkTriple : linkQuery.getTriples()) { String link = linkTriple.getSubject().toString(); TopicLink topiclink = new TopicLink(query, link); tm.mTopicLinks.add(topiclink); } } } /** * check my source TopicLinks and set the targetTopic by looking it up */ public void linkTargetTopics(TopicManager tm) { for (TopicLink sourceTopicLink : sourceTopicLinks.mTopicLinks) { String topicTarget = sourceTopicLink.target; // e.g. Concept:Property; topicTarget = topicTarget.replace("Concept:", ""); // remove Concept // part topicTarget = topicTarget.replace("Koncept:", ""); // remove Concept // part Topic targetTopic = tm.byName(topicTarget); if (targetTopic != null) { sourceTopicLink.targetTopic = targetTopic; } } } /** * set the concept Property for the given target Property */ public void setConceptProperty() { for (Property property : properties.mPropertys) { if ("true".equals(property.mandatory) || "true".equals(property.primaryKey)) { conceptProperty = property; break; } } } // <<<{user defined topic code}{Topic}{Topic} } // class Topic /** * Manager for Topic */ static class TopicManager extends TopicBase { public String topicName = "Topic"; public List<Topic> mTopics = new ArrayList<Topic>(); public Map<String, Topic> mTopicMap = new LinkedHashMap<String, Topic>(); /** * add a new Topic */ public Topic add(Topic pTopic) { mTopics.add(pTopic); mTopicMap.put(pTopic.getPageid(), pTopic); return pTopic; } /** * add a new Topic from the given triple */ public Topic add(TripleQuery query, Triple pTopicTriple) { Topic lTopic = new Topic(query, pTopicTriple); add(lTopic); return lTopic; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public TopicManager() { } // construct me from the given triple Query query public TopicManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicQuery = query.query(null, "isA", "Topic"); for (Triple lTopicTriple : lTopicQuery.getTriples()) { add(query, lTopicTriple); } // then the SMW triplestore lTopicQuery = query.query(null, "Property:IsA", "Topic"); for (Triple lTopicTriple : lTopicQuery.getTriples()) { add(query, lTopicTriple); } init(query); } // constructor for Topic Manager // >>>{user defined topicmanager code}{Topic}{Topic} /** * get a topic by the given name * * @param topicName * - the name of the topic to get FIXME - speedup? */ public Topic byName(String topicName) { Topic result = null; for (Topic topic : mTopics) { if (topicName.equals(topic.name)) { result = topic; } } return result; } // byName /** * configure Topics: link TargetTopics set Concept Properties */ public void configureTopics() { for (Topic topic : mTopics) { topic.setConceptProperty(); topic.linkTargetTopics(this); } } // <<<{user defined topicmanager code}{Topic}{Topic} } // class Topic Manager /** * SMW_Type an SMW_Type is a data type which determines the possible values * for that type e.g. a Boolean can hold true/fals values while a Number can * hold 3.1459 or 20. A Page can hold the name of a Wiki page see * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes */ static class SMW_Type extends TopicBase { String pageid; String documentation; String type; String typepage; String helppage; String javaType; public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getType() { return type; } public void setType(String pType) { type = pType; } public String getTypepage() { return typepage; } public void setTypepage(String pTypepage) { typepage = pTypepage; } public String getHelppage() { return helppage; } public void setHelppage(String pHelppage) { helppage = pHelppage; } public String getJavaType() { return javaType; } public void setJavaType(String pJavaType) { javaType = pJavaType; } /** * convert this SMW_Type to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for SMW_Type */ public SMW_Type() { } /** * construct a SMW_Type from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pSMW_TypeTriple * - the triple to construct me from */ public SMW_Type(TripleQuery query, Triple pSMW_TypeTriple) { this(query, pSMW_TypeTriple.getSubject().toString()); } // constructor /** * construct a SMW_Type from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public SMW_Type(TripleQuery query, String pageid) { this.pageid = pageid; Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:SMW_Type_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple typeTriple = query.selectSingle(pageid, "type", null); if (typeTriple == null) typeTriple = query.selectSingle(pageid, "Property:SMW_Type_type", null); if (typeTriple != null) type = typeTriple.getObject().toString(); Triple typepageTriple = query.selectSingle(pageid, "typepage", null); if (typepageTriple == null) typepageTriple = query.selectSingle(pageid, "Property:SMW_Type_typepage", null); if (typepageTriple != null) typepage = typepageTriple.getObject().toString(); Triple helppageTriple = query.selectSingle(pageid, "helppage", null); if (helppageTriple == null) helppageTriple = query.selectSingle(pageid, "Property:SMW_Type_helppage", null); if (helppageTriple != null) helppage = helppageTriple.getObject().toString(); Triple javaTypeTriple = query.selectSingle(pageid, "javaType", null); if (javaTypeTriple == null) javaTypeTriple = query.selectSingle(pageid, "Property:SMW_Type_javaType", null); if (javaTypeTriple != null) javaType = javaTypeTriple.getObject().toString(); init(query); } // constructor for SMW_Type // >>>{user defined topic code}{SMW_Type}{SMW_Type} // <<<{user defined topic code}{SMW_Type}{SMW_Type} } // class SMW_Type /** * Manager for SMW_Type */ static class SMW_TypeManager extends TopicBase { public String topicName = "SMW_Type"; public List<SMW_Type> mSMW_Types = new ArrayList<SMW_Type>(); public Map<String, SMW_Type> mSMW_TypeMap = new LinkedHashMap<String, SMW_Type>(); /** * add a new SMW_Type */ public SMW_Type add(SMW_Type pSMW_Type) { mSMW_Types.add(pSMW_Type); mSMW_TypeMap.put(pSMW_Type.getPageid(), pSMW_Type); return pSMW_Type; } /** * add a new SMW_Type from the given triple */ public SMW_Type add(TripleQuery query, Triple pSMW_TypeTriple) { SMW_Type lSMW_Type = new SMW_Type(query, pSMW_TypeTriple); add(lSMW_Type); return lSMW_Type; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public SMW_TypeManager() { } // construct me from the given triple Query query public SMW_TypeManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lSMW_TypeQuery = query.query(null, "isA", "SMW_Type"); for (Triple lSMW_TypeTriple : lSMW_TypeQuery.getTriples()) { add(query, lSMW_TypeTriple); } // then the SMW triplestore lSMW_TypeQuery = query.query(null, "Property:IsA", "SMW_Type"); for (Triple lSMW_TypeTriple : lSMW_TypeQuery.getTriples()) { add(query, lSMW_TypeTriple); } init(query); } // constructor for SMW_Type Manager // >>>{user defined topicmanager code}{SMW_Type}{SMW_Type} // <<<{user defined topicmanager code}{SMW_Type}{SMW_Type} } // class SMW_Type Manager /** * Property a Property is a Feature/Attribute */ static class Property extends TopicBase { String pageid; String documentation; String name; String type; String label; String primaryKey; String mandatory; String uploadable; String size; String defaultValue; String inputType; String namespace; String values_from; String allowedValues; String topic; public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getName() { return name; } public void setName(String pName) { name = pName; } public String getType() { return type; } public void setType(String pType) { type = pType; } public String getLabel() { return label; } public void setLabel(String pLabel) { label = pLabel; } public String getPrimaryKey() { return primaryKey; } public void setPrimaryKey(String pPrimaryKey) { primaryKey = pPrimaryKey; } public String getMandatory() { return mandatory; } public void setMandatory(String pMandatory) { mandatory = pMandatory; } public String getUploadable() { return uploadable; } public void setUploadable(String pUploadable) { uploadable = pUploadable; } public String getSize() { return size; } public void setSize(String pSize) { size = pSize; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String pDefaultValue) { defaultValue = pDefaultValue; } public String getInputType() { return inputType; } public void setInputType(String pInputType) { inputType = pInputType; } public String getNamespace() { return namespace; } public void setNamespace(String pNamespace) { namespace = pNamespace; } public String getValues_from() { return values_from; } public void setValues_from(String pValues_from) { values_from = pValues_from; } public String getAllowedValues() { return allowedValues; } public void setAllowedValues(String pAllowedValues) { allowedValues = pAllowedValues; } public String getTopic() { return topic; } public void setTopic(String pTopic) { topic = pTopic; } /** * convert this Property to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Property */ public Property() { } /** * construct a Property from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pPropertyTriple * - the triple to construct me from */ public Property(TripleQuery query, Triple pPropertyTriple) { this(query, pPropertyTriple.getSubject().toString()); } // constructor /** * construct a Property from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Property(TripleQuery query, String pageid) { this.pageid = pageid; Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:Property_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Property_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple typeTriple = query.selectSingle(pageid, "type", null); if (typeTriple == null) typeTriple = query.selectSingle(pageid, "Property:Property_type", null); if (typeTriple != null) type = typeTriple.getObject().toString(); Triple labelTriple = query.selectSingle(pageid, "label", null); if (labelTriple == null) labelTriple = query.selectSingle(pageid, "Property:Property_label", null); if (labelTriple != null) label = labelTriple.getObject().toString(); Triple primaryKeyTriple = query.selectSingle(pageid, "primaryKey", null); if (primaryKeyTriple == null) primaryKeyTriple = query.selectSingle(pageid, "Property:Property_primaryKey", null); if (primaryKeyTriple != null) primaryKey = primaryKeyTriple.getObject().toString(); Triple mandatoryTriple = query.selectSingle(pageid, "mandatory", null); if (mandatoryTriple == null) mandatoryTriple = query.selectSingle(pageid, "Property:Property_mandatory", null); if (mandatoryTriple != null) mandatory = mandatoryTriple.getObject().toString(); Triple uploadableTriple = query.selectSingle(pageid, "uploadable", null); if (uploadableTriple == null) uploadableTriple = query.selectSingle(pageid, "Property:Property_uploadable", null); if (uploadableTriple != null) uploadable = uploadableTriple.getObject().toString(); Triple sizeTriple = query.selectSingle(pageid, "size", null); if (sizeTriple == null) sizeTriple = query.selectSingle(pageid, "Property:Property_size", null); if (sizeTriple != null) size = sizeTriple.getObject().toString(); Triple defaultValueTriple = query.selectSingle(pageid, "defaultValue", null); if (defaultValueTriple == null) defaultValueTriple = query.selectSingle(pageid, "Property:Property_defaultValue", null); if (defaultValueTriple != null) defaultValue = defaultValueTriple.getObject().toString(); Triple inputTypeTriple = query.selectSingle(pageid, "inputType", null); if (inputTypeTriple == null) inputTypeTriple = query.selectSingle(pageid, "Property:Property_inputType", null); if (inputTypeTriple != null) inputType = inputTypeTriple.getObject().toString(); Triple namespaceTriple = query.selectSingle(pageid, "namespace", null); if (namespaceTriple == null) namespaceTriple = query.selectSingle(pageid, "Property:Property_namespace", null); if (namespaceTriple != null) namespace = namespaceTriple.getObject().toString(); Triple values_fromTriple = query .selectSingle(pageid, "values_from", null); if (values_fromTriple == null) values_fromTriple = query.selectSingle(pageid, "Property:Property_values_from", null); if (values_fromTriple != null) values_from = values_fromTriple.getObject().toString(); Triple allowedValuesTriple = query.selectSingle(pageid, "allowedValues", null); if (allowedValuesTriple == null) allowedValuesTriple = query.selectSingle(pageid, "Property:Property_allowedValues", null); if (allowedValuesTriple != null) allowedValues = allowedValuesTriple.getObject().toString(); Triple topicTriple = query.selectSingle(pageid, "topic", null); if (topicTriple == null) topicTriple = query.selectSingle(pageid, "Property:Property_topic", null); if (topicTriple != null) topic = topicTriple.getObject().toString(); init(query); } // constructor for Property // >>>{user defined topic code}{Property}{Property} @Override public void init(TripleQuery query) { if (name == null) { name = pageid; } if (label == null) { label = name; } if (type == null) { type = "Text"; } } // <<<{user defined topic code}{Property}{Property} } // class Property /** * Manager for Property */ static class PropertyManager extends TopicBase { public String topicName = "Property"; public List<Property> mPropertys = new ArrayList<Property>(); public Map<String, Property> mPropertyMap = new LinkedHashMap<String, Property>(); /** * add a new Property */ public Property add(Property pProperty) { mPropertys.add(pProperty); mPropertyMap.put(pProperty.getPageid(), pProperty); return pProperty; } /** * add a new Property from the given triple */ public Property add(TripleQuery query, Triple pPropertyTriple) { Property lProperty = new Property(query, pPropertyTriple); add(lProperty); return lProperty; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public PropertyManager() { } // construct me from the given triple Query query public PropertyManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lPropertyQuery = query.query(null, "isA", "Property"); for (Triple lPropertyTriple : lPropertyQuery.getTriples()) { add(query, lPropertyTriple); } // then the SMW triplestore lPropertyQuery = query.query(null, "Property:IsA", "Property"); for (Triple lPropertyTriple : lPropertyQuery.getTriples()) { add(query, lPropertyTriple); } init(query); } // constructor for Property Manager // >>>{user defined topicmanager code}{Property}{Property} // <<<{user defined topicmanager code}{Property}{Property} } // class Property Manager /** * TopicLink * */ static class TopicLink extends TopicBase { String pageid; String name; String sourceRole; String sourceMultiple; String source; String sourceDocumentation; String targetRole; String targetMultiple; String target; String masterDetail; String targetDocumentation; public String getName() { return name; } public void setName(String pName) { name = pName; } public String getSourceRole() { return sourceRole; } public void setSourceRole(String pSourceRole) { sourceRole = pSourceRole; } public String getSourceMultiple() { return sourceMultiple; } public void setSourceMultiple(String pSourceMultiple) { sourceMultiple = pSourceMultiple; } public String getSource() { return source; } public void setSource(String pSource) { source = pSource; } public String getSourceDocumentation() { return sourceDocumentation; } public void setSourceDocumentation(String pSourceDocumentation) { sourceDocumentation = pSourceDocumentation; } public String getTargetRole() { return targetRole; } public void setTargetRole(String pTargetRole) { targetRole = pTargetRole; } public String getTargetMultiple() { return targetMultiple; } public void setTargetMultiple(String pTargetMultiple) { targetMultiple = pTargetMultiple; } public String getTarget() { return target; } public void setTarget(String pTarget) { target = pTarget; } public String getMasterDetail() { return masterDetail; } public void setMasterDetail(String pMasterDetail) { masterDetail = pMasterDetail; } public String getTargetDocumentation() { return targetDocumentation; } public void setTargetDocumentation(String pTargetDocumentation) { targetDocumentation = pTargetDocumentation; } /** * convert this TopicLink to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for TopicLink */ public TopicLink() { } /** * construct a TopicLink from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pTopicLinkTriple * - the triple to construct me from */ public TopicLink(TripleQuery query, Triple pTopicLinkTriple) { this(query, pTopicLinkTriple.getSubject().toString()); } // constructor /** * construct a TopicLink from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public TopicLink(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query .selectSingle(pageid, "Property:TopicLink_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple sourceRoleTriple = query.selectSingle(pageid, "sourceRole", null); if (sourceRoleTriple == null) sourceRoleTriple = query.selectSingle(pageid, "Property:TopicLink_sourceRole", null); if (sourceRoleTriple != null) sourceRole = sourceRoleTriple.getObject().toString(); Triple sourceMultipleTriple = query.selectSingle(pageid, "sourceMultiple", null); if (sourceMultipleTriple == null) sourceMultipleTriple = query.selectSingle(pageid, "Property:TopicLink_sourceMultiple", null); if (sourceMultipleTriple != null) sourceMultiple = sourceMultipleTriple.getObject().toString(); Triple sourceTriple = query.selectSingle(pageid, "source", null); if (sourceTriple == null) sourceTriple = query.selectSingle(pageid, "Property:TopicLink_source", null); if (sourceTriple != null) source = sourceTriple.getObject().toString(); Triple sourceDocumentationTriple = query.selectSingle(pageid, "sourceDocumentation", null); if (sourceDocumentationTriple == null) sourceDocumentationTriple = query.selectSingle(pageid, "Property:TopicLink_sourceDocumentation", null); if (sourceDocumentationTriple != null) sourceDocumentation = sourceDocumentationTriple.getObject().toString(); Triple targetRoleTriple = query.selectSingle(pageid, "targetRole", null); if (targetRoleTriple == null) targetRoleTriple = query.selectSingle(pageid, "Property:TopicLink_targetRole", null); if (targetRoleTriple != null) targetRole = targetRoleTriple.getObject().toString(); Triple targetMultipleTriple = query.selectSingle(pageid, "targetMultiple", null); if (targetMultipleTriple == null) targetMultipleTriple = query.selectSingle(pageid, "Property:TopicLink_targetMultiple", null); if (targetMultipleTriple != null) targetMultiple = targetMultipleTriple.getObject().toString(); Triple targetTriple = query.selectSingle(pageid, "target", null); if (targetTriple == null) targetTriple = query.selectSingle(pageid, "Property:TopicLink_target", null); if (targetTriple != null) target = targetTriple.getObject().toString(); Triple masterDetailTriple = query.selectSingle(pageid, "masterDetail", null); if (masterDetailTriple == null) masterDetailTriple = query.selectSingle(pageid, "Property:TopicLink_masterDetail", null); if (masterDetailTriple != null) masterDetail = masterDetailTriple.getObject().toString(); Triple targetDocumentationTriple = query.selectSingle(pageid, "targetDocumentation", null); if (targetDocumentationTriple == null) targetDocumentationTriple = query.selectSingle(pageid, "Property:TopicLink_targetDocumentation", null); if (targetDocumentationTriple != null) targetDocumentation = targetDocumentationTriple.getObject().toString(); init(query); } // constructor for TopicLink // >>>{user defined topic code}{TopicLink}{TopicLink} Topic sourceTopic = null; Topic targetTopic = null; // <<<{user defined topic code}{TopicLink}{TopicLink} } // class TopicLink /** * Manager for TopicLink */ static class TopicLinkManager extends TopicBase { public String topicName = "TopicLink"; public List<TopicLink> mTopicLinks = new ArrayList<TopicLink>(); public Map<String, TopicLink> mTopicLinkMap = new LinkedHashMap<String, TopicLink>(); /** * add a new TopicLink */ public TopicLink add(TopicLink pTopicLink) { mTopicLinks.add(pTopicLink); mTopicLinkMap.put(pTopicLink.getPageid(), pTopicLink); return pTopicLink; } /** * add a new TopicLink from the given triple */ public TopicLink add(TripleQuery query, Triple pTopicLinkTriple) { TopicLink lTopicLink = new TopicLink(query, pTopicLinkTriple); add(lTopicLink); return lTopicLink; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public TopicLinkManager() { } // construct me from the given triple Query query public TopicLinkManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicLinkQuery = query.query(null, "isA", "TopicLink"); for (Triple lTopicLinkTriple : lTopicLinkQuery.getTriples()) { add(query, lTopicLinkTriple); } // then the SMW triplestore lTopicLinkQuery = query.query(null, "Property:IsA", "TopicLink"); for (Triple lTopicLinkTriple : lTopicLinkQuery.getTriples()) { add(query, lTopicLinkTriple); } init(query); } // constructor for TopicLink Manager // >>>{user defined topicmanager code}{TopicLink}{TopicLink} // <<<{user defined topicmanager code}{TopicLink}{TopicLink} } // class TopicLink Manager } @{ // global variables // will only be set if tripleStore argument is available e.g. not for dialogs Topic maintopic=null; TripleQuery query=null; TripleQuery topics=null; ContextManager mContextManager=null; TopicManager mTopicManager=null; String maintopicName=null; if (tripleStore!=null) { query=tripleStore.query(); topics=query.query(null,"isA","Topic"); mContextManager=new ContextManager(tripleStore); mTopicManager=new TopicManager(query); // PropertyManager mPropertyManager=new PropertyManager(query); // TopicLinkManager mTopicLinkManager=new TopicLinkManager(query); // SMW_TypeManager mSMW_TypeManager=new SMW_TypeManager(query); mTopicManager.configureTopics(); maintopicName=wikiTask.getParams(); if (maintopicName!=null) { maintopic=mTopicManager.byName(maintopicName); } } } </source> 55854e2fbffff910c04cf67adaad92c1db328c20 MetaModel 0 34 199 72 2015-12-28T13:36:05Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:04Z wikitext text/x-wiki {{Context |name=MetaModel |since=2015/01/23 |master=http://master.bitplan.com |storemode=property }} __NOCACHE__ = Topics = {{Context |name=Metamodel |storemode=none |viewmode=masterdetail }} = WikiTask = {{ContextWikitask |context=MetaModel }} = Model = === sidif === <source lang='xml' id='sidif'> # # Context:MetaModel # MetaModel isA Context "MetaModel" is name of it # #Context # Context isA Topic "Context" is name of it "Contexts" is pluralName of it "A Context groups some topics like a Namespace/Package" is documentation of it "A Context groups some topics like a Namespace/Package" is wikiDocumentation of it "File:Registry.png" is icon of it "/images/d/d2/Registry.png" is iconUrl of it "property" is defaultstoremode of it "MetaModel" is context of it Context_name addsTo it Context_since addsTo it Context_master addsTo it # properties of Context # property name Context_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it 1 is sortPos of it true is primaryKey of it true is mandatory of it 80 is size of it false is uploadable of it "Name of the context" is documentation of it false is isLink of it "Context" is topic of it # property since Context_since isA Property "since" is name of it "since" is label of it "Date" is type of it 2 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "datepicker" is inputType of it "since when is this context available?" is documentation of it true is showInGrid of it false is isLink of it "Context" is topic of it # property master Context_master isA Property "master" is name of it "master" is label of it "URL" is type of it 3 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "what is the original master source of this context" is documentation of it true is showInGrid of it false is isLink of it "Context" is topic of it # #Property # Property isA Topic "Property" is name of it "Properties" is pluralName of it "a Property is a Feature/Attribute of a Topic" is documentation of it "see * https://semantic-mediawiki.org/wiki/Help:Properties_and_types * https://semantic-mediawiki.org/wiki/Help:Special_properties * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes" is wikiDocumentation of it "File:Element_into_input.png" is icon of it "/images/6/6a/Element_into_input.png" is iconUrl of it "property" is defaultstoremode of it "MetaModel" is context of it Property_name addsTo it Property_label addsTo it Property_type addsTo it Property_index addsTo it Property_sortPos addsTo it Property_primaryKey addsTo it Property_mandatory addsTo it Property_namespace addsTo it Property_size addsTo it Property_uploadable addsTo it Property_defaultValue addsTo it Property_inputType addsTo it Property_allowedValues addsTo it Property_documentation addsTo it Property_values_from addsTo it Property_showInGrid addsTo it Property_isLink addsTo it Property_nullable addsTo it # properties of Property # property name Property_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it 1 is sortPos of it true is primaryKey of it true is mandatory of it 50 is size of it false is uploadable of it "The name of the property" is documentation of it false is isLink of it "Property" is topic of it # property label Property_label isA Property "label" is name of it "label" is label of it "Text" is type of it 2 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The label to be shown when in a form" is documentation of it false is isLink of it "Property" is topic of it # property type Property_type isA Property "type" is name of it "type" is label of it "Page" is type of it 3 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "Special:Types/Text" is defaultValue of it "dropdown" is inputType of it "The type of a Property" is documentation of it "property=Property_type" is values_from of it true is showInGrid of it false is isLink of it "Property" is topic of it # property index Property_index isA Property "index" is name of it "index" is label of it "Number" is type of it 4 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "A positive number that specifies at which position of a Topic the given property should show. The first property to show has the index 1 each following property has an index that is +1 of the previous." is documentation of it true is showInGrid of it false is isLink of it "Property" is topic of it # property sortPos Property_sortPos isA Property "sortPos" is name of it "sortPos" is label of it "Number" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 3 is size of it false is uploadable of it "If none empty >0 this is the position in the sort clause of this property. This is used when displaying list of the topic as the default sort order and it is used for selecting topics . E.g. Sortpos 1 for attribute lastname and sortpos 2 for attribute firstname leads to sort by lastname,firstname" is documentation of it false is isLink of it "Property" is topic of it # property primaryKey Property_primaryKey isA Property "primaryKey" is name of it "primary key" is label of it "Boolean" is type of it 6 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "is this property a primary key of it's topic?" is documentation of it false is isLink of it "Property" is topic of it # property mandatory Property_mandatory isA Property "mandatory" is name of it "mandatory" is label of it "Boolean" is type of it 7 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "Specifies that this field must be filled in by the user. Note: mandatory should not be used in conjunction with hidden. Use of both in any field will cause the mandatory check on any field to fail when the form is saved. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag" is documentation of it false is isLink of it "Property" is topic of it # property namespace Property_namespace isA Property "namespace" is name of it "namespace" is label of it "Text" is type of it 8 is index of it false is primaryKey of it false is mandatory of it 20 is size of it false is uploadable of it "namespace prefix" is documentation of it false is isLink of it "Property" is topic of it # property size Property_size isA Property "size" is name of it "size" is label of it "Number" is type of it 9 is index of it false is primaryKey of it false is mandatory of it 3 is size of it false is uploadable of it "the display size of the field for the property" is documentation of it false is isLink of it "Property" is topic of it # property uploadable Property_uploadable isA Property "uploadable" is name of it "uploadable" is label of it "Boolean" is type of it 10 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "Specifies that a link should be placed next to this field, that opens a popup window to let the user upload a file; see 'Uploading files', below. See * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Uploading_files The type of the target property needs to be Page for this to work" is documentation of it false is isLink of it "Property" is topic of it # property defaultValue Property_defaultValue isA Property "defaultValue" is name of it "default" is label of it "Code" is type of it 11 is index of it false is primaryKey of it false is mandatory of it 80 is size of it false is uploadable of it "default value - Specifies a default value for this field. For date-related fields, default=now will set the value to the current date and possibly time. For text fields, default=current user will set the value to the username of the user adding this page. For the checkbox input type, default=yes will check the checkbox by default. (The 'checkboxes' input type, on the other hand, like the 'listbox' type, requires specifying the actual values, like default=Value A, Value C.) You can also include templates, parser functions, and magic words within the 'default=' value. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag (default)" is documentation of it false is isLink of it "Property" is topic of it # property inputType Property_inputType isA Property "inputType" is name of it "inputType" is label of it "Text" is type of it 12 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "dropdown" is inputType of it "text, combobox, dropdown, textarea, tree, datetime, datepicker, timepicker, datetimepicker, menuselect,two listboxes, datecheck, regexp, radiobutton, googlemaps" is allowedValues of it "see * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>input type - Specifies the type of input this field will have in the form. If a field corresponds to an SMW property or Cargo field, the form will usually have the correct input type by default; otherwise the default is text. If the corresponding SMW property, or Cargo field, cannot be automatically determined, you can use the parameter 'property', or the parameters 'cargo table' and 'cargo field', to manually specify it (see below). The allowed set of input types is different for every semantic property type; see below for the full list of options. * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Allowed_input_types_for_data_types * http://www.mediawiki.org/wiki/Extension:Semantic_Forms_Inputs" is documentation of it false is isLink of it "Property" is topic of it # property allowedValues Property_allowedValues isA Property "allowedValues" is name of it "allowedValues" is label of it "Text" is type of it 13 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "There are two ways to specified allowed Values: # https://semantic-mediawiki.org/wiki/Help:Special_property_Allows_value. <br>Use [[Property:Allows_value]] to see which values are allowed for certain properties # http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>values=possible values - Specifies a set of either possible values or autocompletion values (depending on the input type) that this field can have, overriding whatever set of values may have been set from the Semantic MediaWiki property. This set of values is separated by commas by default, but the delimiter can be modified using the delimiter= parameter. If you specify any values method number 2 will be used here which might override any allowed Values specified with method number 1." is documentation of it false is isLink of it "Property" is topic of it # property documentation Property_documentation isA Property "documentation" is name of it "documentation" is label of it "Text" is type of it 14 is index of it false is primaryKey of it false is mandatory of it 500 is size of it false is uploadable of it "textarea" is inputType of it "The documentation for a property" is documentation of it false is isLink of it "Property" is topic of it # property values_from Property_values_from isA Property "values_from" is name of it "values from" is label of it "Code" is type of it 15 is index of it false is primaryKey of it false is mandatory of it 200 is size of it false is uploadable of it "textarea" is inputType of it "Specifies where to get the possible values to be displayed in a form from see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * values from property=property name - Similar to values=, but gets its values from the the set of all values that a certain SMW property points to. * values from category=category name - Similar to values=, but gets its values from the names of all pages belonging to a specific category. * values from concept=concept name - Similar to values=, but gets its values from the names of all pages belonging to a specific concept. * values from namespace=namespace name - Similar to values=, but gets its values from the names of all pages belonging to a specific namespace. (To get values from the main namespace, use 'Main' for the namespace name, or just leave it blank.) * values from url=URL identifier - Used only for autocompletion. Specifies that autocompletion should be based on the values retrieved from an outside URL; see Autocompleting on outside values for how to do this. * values from external data=variable name - Used for autocompletion. You need to have theExternal Data extension installed to be able to use this parameter. It specifies that autocompletion should be based on the data retrieved from an outside source. A large number of data sources are supported, including web APIs, regular wiki pages, files on the local server, databases and LDAP directories. See Autocompletion using External Data." is documentation of it false is isLink of it "Property" is topic of it # property showInGrid Property_showInGrid isA Property "showInGrid" is name of it "showInGrid" is label of it "Boolean" is type of it 16 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "true" is defaultValue of it "I am true if this property is displayed in the default list of properties for my topic as a column" is documentation of it true is showInGrid of it false is isLink of it "Property" is topic of it # property isLink Property_isLink isA Property "isLink" is name of it "isLink" is label of it "Boolean" is type of it 17 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "true if this Property is derived form a Link. It will not be exported to SiDIF separately and automatically be added by the Property Generator" is documentation of it false is showInGrid of it false is isLink of it "Property" is topic of it # property nullable Property_nullable isA Property "nullable" is name of it "allow nulls?" is label of it "Boolean" is type of it 18 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "false" is defaultValue of it "should nullvalues be allowed and value set to NULL when empty?" is documentation of it false is showInGrid of it false is isLink of it "Property" is topic of it # #SMW_Type # SMW_Type isA Topic "SMW_Type" is name of it "SMW_Types" is pluralName of it "an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes" is documentation of it "see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes" is wikiDocumentation of it "File:Component.png" is icon of it "/images/4/40/Component.png" is iconUrl of it "subobject" is defaultstoremode of it "MetaModel" is context of it SMW_Type_type addsTo it SMW_Type_documentation addsTo it SMW_Type_helppage addsTo it SMW_Type_typepage addsTo it SMW_Type_javaType addsTo it SMW_Type_type isA Property "type" is name of it "type" is label of it "Text" is type of it 1 is index of it true is primaryKey of it true is mandatory of it 50 is size of it false is uploadable of it "The Semantic MediaWiki type without the prefix e.g. Text, Number, Boolean" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_documentation isA Property "documentation" is name of it "type" is label of it "Text" is type of it 2 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The documentation of this Semantic Media Wiki type" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_helppage isA Property "helppage" is name of it "type" is label of it "URL" is type of it 3 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The url of the 'official' documentation page of this type" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_typepage isA Property "typepage" is name of it "typepage" is label of it "Page" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The Semantic Media Wiki Special page for this specific type e.g. Special:Types/Text, Special:Types/Boolean, Special:Types/Date, Special:Types/Number, Special:Types/Page" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_javaType isA Property "javaType" is name of it "java Type" is label of it "Text" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "Java mapping of this type" is documentation of it false is isLink of it "SMW_Type" is topic of it # #Topic # Topic isA Topic "Topic" is name of it "Topics" is pluralName of it "A Topic is a Concept/Class/Thing/Entity" is documentation of it "A Topic is a Concept/Class/Thing/Entity" is wikiDocumentation of it "File:Index.png" is icon of it "/images/master/a/ae/Index.png" is iconUrl of it "property" is defaultstoremode of it false is cargo of it "MetaModel" is context of it Topic_name addsTo it Topic_pluralName addsTo it Topic_icon addsTo it Topic_iconUrl addsTo it Topic_documentation addsTo it Topic_wikiDocumentation addsTo it Topic_defaultstoremode addsTo it Topic_listLimit addsTo it Topic_cargo addsTo it # properties of Topic # property name Topic_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it true is primaryKey of it true is mandatory of it 80 is size of it false is uploadable of it "The name of the topic" is documentation of it false is isLink of it "Topic" is topic of it # property pluralName Topic_pluralName isA Property "pluralName" is name of it "pluralName" is label of it "Text" is type of it 2 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The plural of a topic name. E.g. for the topic 'City' the pluralName is 'Cities'. If no pluralName is specified an 's' is appended. E.g. for the topic 'Book' the default pluralName is 'Books'" is documentation of it false is isLink of it "Topic" is topic of it # property icon Topic_icon isA Property "icon" is name of it "icon" is label of it "Page" is type of it 3 is index of it false is primaryKey of it false is mandatory of it "File" is namespace of it 55 is size of it true is uploadable of it "an Icon for the topic" is documentation of it false is showInGrid of it false is isLink of it "Topic" is topic of it # property iconUrl Topic_iconUrl isA Property "iconUrl" is name of it "icon Url" is label of it "URL" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 80 is size of it false is uploadable of it "text" is inputType of it "the url of an icon" is documentation of it false is showInGrid of it false is isLink of it "Topic" is topic of it # property documentation Topic_documentation isA Property "documentation" is name of it "documentation" is label of it "Text" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The plaintext documentation of a Topic. Please do not use markup for this." is documentation of it false is isLink of it "Topic" is topic of it # property wikiDocumentation Topic_wikiDocumentation isA Property "wikiDocumentation" is name of it "wikiDocumentation" is label of it "Text" is type of it 6 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "Documentation of the Topic using MediaWiki / Semantic Mediawiki markup" is documentation of it false is isLink of it "Topic" is topic of it # property defaultstoremode Topic_defaultstoremode isA Property "defaultstoremode" is name of it "default storemode" is label of it "Text" is type of it 7 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "radiobutton" is inputType of it "none,property,subobject" is allowedValues of it "The default storemode of the topic" is documentation of it false is isLink of it "Topic" is topic of it # property listLimit Topic_listLimit isA Property "listLimit" is name of it "list Limit" is label of it "Number" is type of it 8 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "200" is defaultValue of it "What is the default #ask list limit for this Topic?" is documentation of it true is showInGrid of it false is isLink of it "Topic" is topic of it # property cargo Topic_cargo isA Property "cargo" is name of it "use cargo" is label of it "Boolean" is type of it 9 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "Should the Topic be stored using the [https://www.mediawiki.org/wiki/Extension:Cargo Cargo Extension?]" is documentation of it false is showInGrid of it false is isLink of it "Topic" is topic of it # #Action # Action isA Topic "Action" is name of it "Actions" is pluralName of it "An action/function/operation to be performed" is documentation of it "An action/function/operation to be performed" is wikiDocumentation of it "File:Actionicon.png" is icon of it "/images/e/eb/Actionicon.png" is iconUrl of it "subobject" is defaultstoremode of it false is cargo of it "MetaModel" is context of it Action_name addsTo it Action_servicetype addsTo it Action_service addsTo it Action_inputtype addsTo it Action_input addsTo it Action_actionpage addsTo it Action_output addsTo it Action_engine addsTo it Action_author addsTo it Action_since addsTo it Action_comment addsTo it # properties of Action # property name Action_name isA Property "name" is name of it "name" is label of it "Text" is type of it 0 is index of it true is primaryKey of it true is mandatory of it false is uploadable of it "The name of the Action" is documentation of it false is isLink of it "Action" is topic of it # property servicetype Action_servicetype isA Property "servicetype" is name of it "servicetype" is label of it "Text" is type of it 1 is index of it false is primaryKey of it true is mandatory of it false is uploadable of it "WikiTask" is defaultValue of it "radiobutton" is inputType of it "WikiTask" is allowedValues of it "The type of the service" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property service Action_service isA Property "service" is name of it "service" is label of it "URL" is type of it 2 is index of it "The service to be used" is documentation of it false is isLink of it "Action" is topic of it # property inputtype Action_inputtype isA Property "inputtype" is name of it "inputtype" is label of it "Text" is type of it 3 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "Page" is defaultValue of it "radiobutton" is inputType of it "Query,Page,URL" is allowedValues of it "What is the type of the input?" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property input Action_input isA Property "input" is name of it "input" is label of it "Code" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 300 is size of it false is uploadable of it "textarea" is inputType of it "the decription of the input e.g. a page name, url or SMW ask query" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property actionpage Action_actionpage isA Property "actionpage" is name of it "actionpage" is label of it "Page" is type of it 5 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "Property:Action actionpage" is defaultValue of it "What page will 'steer' this action?" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property output Action_output isA Property "output" is name of it "output" is label of it "Text" is type of it 6 is index of it "where the output of the action should go" is documentation of it false is isLink of it "Action" is topic of it # property engine Action_engine isA Property "engine" is name of it "engine" is label of it "Text" is type of it 7 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "rythm" is defaultValue of it "radiobutton" is inputType of it "rythm,freemarker" is allowedValues of it "the template engine to be used either [[Rythm]] or [[Freemarker]]" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property author Action_author isA Property "author" is name of it "author" is label of it "Page" is type of it 8 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "combobox" is inputType of it "the author of this action" is documentation of it "namespace=User" is values_from of it true is showInGrid of it false is isLink of it "Action" is topic of it # property since Action_since isA Property "since" is name of it "since" is label of it "Date" is type of it 9 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "datepicker" is inputType of it "since when is this action available?" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property comment Action_comment isA Property "comment" is name of it "comment" is label of it "Text" is type of it 10 is index of it false is primaryKey of it false is mandatory of it 400 is size of it false is uploadable of it "textarea" is inputType of it "a comment for the action" is documentation of it false is showInGrid of it false is isLink of it "Action" is topic of it # # #TopicLink # TopicLink isA Topic "TopicLink" is name of it "TopicLinks" is pluralName of it "A TopicLink links two Concepts" is documentation of it "A TopicLink links two [[Concept:Topic]]s" is wikiDocumentation of it "File:Link.png" is icon of it "/images/f/fd/Link.png" is iconUrl of it "subobject" is defaultstoremode of it "MetaModel" is context of it TopicLink_name addsTo it TopicLink_source addsTo it TopicLink_sourceRole addsTo it TopicLink_sourceMultiple addsTo it TopicLink_sourceDocumentation addsTo it TopicLink_target addsTo it TopicLink_targetRole addsTo it TopicLink_targetMultiple addsTo it TopicLink_targetDocumentation addsTo it TopicLink_masterDetail addsTo it TopicLink_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The name of the topic link" is documentation of it false is isLink of it "TopicLink" is topic of it TopicLink_source isA Property "source" is name of it "source" is label of it "Page" is type of it 2 is index of it false is primaryKey of it true is mandatory of it 50 is size of it false is uploadable of it "dropdown" is inputType of it "the source of a topic Link" is documentation of it "concept=Topic" is values_from of it false is isLink of it "TopicLink" is topic of it TopicLink_sourceRole isA Property "sourceRole" is name of it "sourceRole" is label of it "Text" is type of it 3 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_sourceMultiple isA Property "sourceMultiple" is name of it "sourceMultiple" is label of it "Boolean" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_sourceDocumentation isA Property "sourceDocumentation" is name of it "source Doc" is label of it "Text" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 300 is size of it false is uploadable of it "textarea" is inputType of it "Documentation for the source Role" is documentation of it false is isLink of it "TopicLink" is topic of it TopicLink_target isA Property "target" is name of it "target" is label of it "Page" is type of it 6 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_targetRole isA Property "targetRole" is name of it "targetRole" is label of it "Text" is type of it 7 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_targetMultiple isA Property "targetMultiple" is name of it "sourceMultiple" is label of it "Boolean" is type of it 8 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_targetDocumentation isA Property "targetDocumentation" is name of it "target Doc" is label of it "Text" is type of it 9 is index of it false is primaryKey of it false is mandatory of it 300 is size of it false is uploadable of it "textarea" is inputType of it "Documentation for the target Role" is documentation of it false is isLink of it "TopicLink" is topic of it TopicLink_masterDetail isA Property "masterDetail" is name of it "masterDetail" is label of it "Boolean" is type of it 10 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "should the details be displayed in the same form and template? If no * for a 1:1 link there will be a linking attribute used and that can be selected. * for a 1:n link a link to the list of neighbours will be displayed if yes * for a 1:1 link the details * for a 1:n link" is documentation of it false is isLink of it "TopicLink" is topic of it # # TopicLinks # TopicLinks_containedProperties isA TopicLink "containedProperties" is name of it "topic" is sourceRole of it false is sourceMultiple of it "Topic" is source of it "properties" is targetRole of it true is targetMultiple of it "Property" is target of it TopicLinks_containedTopics isA TopicLink "containedTopics" is name of it "context" is sourceRole of it false is sourceMultiple of it "Context" is source of it "topics" is targetRole of it true is targetMultiple of it "Topic" is target of it TopicLinks_typeOfProperty isA TopicLink "typeOfProperty" is name of it "usedByProperties" is sourceRole of it true is sourceMultiple of it "Property" is source of it "the properties having this type" is sourceDocumentation of it "smw_type" is targetRole of it false is targetMultiple of it "SMW_Type" is target of it false is masterDetail of it "the smw_type being used by this property" is targetDocumentation of it # data Annotation_URI isA SMW_Type "Annotation URI" is type of it "Special:Types/Annotation_URI" is typepage of it "Holds URIs, but has some technical differences during export compared to the 'URL' type" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Annotation_URI" is helppage of it Boolean isA SMW_Type "Boolean" is type of it "Special:Types/Boolean" is typepage of it "Holds boolean (true/false) values" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Boolean" is helppage of it Code isA SMW_Type "Code" is type of it "Special:Types/Code" is typepage of it "Holds technical, pre-formatted texts (similar to type Text)" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Code" is helppage of it Date isA SMW_Type "Date" is type of it "Special:Types/Date" is typepage of it "Holds particular points in time" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Date" is helppage of it Email isA SMW_Type "Email" is type of it "Special:Types/Email" is typepage of it "Holds e-mail addresses" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Email" is helppage of it Geographic_coordinate isA SMW_Type "Geographic coordinate" is type of it "Special:Types/Geographic_coordinate" is typepage of it "Holds coordinates describing geographic locations" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Geographic_coordinate" is helppage of it Number isA SMW_Type "Number" is type of it "Special:Types/Number" is typepage of it "Holds integer and decimal numbers, with an optional exponent" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Number" is helppage of it Page isA SMW_Type "Page" is type of it "Special:Types/Page" is typepage of it "Holds names of wiki pages, and displays them as a link" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Page" is helppage of it Quantity isA SMW_Type "Quantity" is type of it "Special:Types/Quantity" is typepage of it "Holds values that describe quantities, containing both a number and a unit" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Quantity" is helppage of it Record isA SMW_Type "Record" is type of it "Special:Types/Record" is typepage of it "Allows saving compound property values that consist of a short list of values with fixed type and order" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Record" is helppage of it Telephone_number isA SMW_Type "Telephone number" is type of it "Special:Types/Telephone_number" is typepage of it "Holds international telephone numbers based on the [https://tools.ietf.org/html/rfc3966 RFC 3966 standard]" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Telephone_number" is helppage of it Temperature isA SMW_Type "Temperature" is type of it "Special:Types/Temperature" is typepage of it "Holds temperature values (similar to type Quantity)" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Temperature" is helppage of it Text isA SMW_Type "Text" is type of it "Special:Types/Text" is typepage of it "Holds text of arbitrary length" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Text" is helppage of it URL isA SMW_Type "URL" is type of it "Special:Types/URL" is typepage of it "Holds URIs, URNs and URLs" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_URL" is helppage of it </source> <headertabs/> 90701fa09962bdf4ea06a3cdf09401c36eb095f7 Property:Property type 102 57 200 97 2015-12-28T13:36:13Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:13Z wikitext text/x-wiki {{Property |name=type |label=type |type=Special:Types/Page |index=3 |primaryKey=No |mandatory=No |uploadable=No |defaultValue=Special:Types/Text |inputType=dropdown |documentation=The type of a Property |values_from=property=Property_type |showInGrid=Yes |isLink=No |nullable=No |topic=Concept:Property |storemode=property }} [[Has type::Page]] [[has default form::Property]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} 410662e2cf92c584db7be430b15aaaf259929822 Property:Topic name 102 71 201 111 2015-12-28T13:36:27Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:26Z wikitext text/x-wiki {{Property |mandatory=true |uploadable=false |index=1 |size=80 |topic=Concept:Topic |label=name |name=name |primaryKey=true |documentation=The name of the topic |type=Special:Types/Text |storemode=property }} [[Has type::Text]] 4dea77ad5ab381f12da0066904867da713f7551a Property:Topic listLimit 102 150 202 2015-12-28T13:36:28Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:27Z wikitext text/x-wiki {{Property |name=listLimit |label=list Limit |type=Special:Types/Number |index=8 |primaryKey=No |mandatory=No |size=4 |uploadable=No |defaultValue=200 |documentation=What is the default #ask list limit for this Topic? |showInGrid=Yes |isLink=No |topic=Concept:Topic |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} dbdb362ad2f9c64f079b060ed9d1a347dffabd26 Property:Context since 102 151 203 2015-12-28T13:36:34Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:33Z wikitext text/x-wiki {{Property |name=since |label=since |type=Special:Types/Date |index=2 |primaryKey=No |mandatory=No |uploadable=No |inputType=datepicker |documentation=since when is this context available? |showInGrid=Yes |isLink=No |nullable=No |topic=Concept:Context |storemode=property }} [[Has type::Date]] This is a Property with type {{#show: {{FULLPAGENAME}} | ?Property type#- }} ef317164bd8bfe185f7a36cd281b051deda36694 Property:Context master 102 152 204 2015-12-28T13:36:35Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:34Z wikitext text/x-wiki {{Property |name=master |label=master |type=Special:Types/URL |index=3 |primaryKey=No |mandatory=No |size=100 |uploadable=No |documentation=what is the original master source of this context |showInGrid=Yes |isLink=No |nullable=No |topic=Concept:Context |storemode=property }} [[Has type::URL]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 8eec08647e95827104614c31968b91f97fe1deff Template:! 10 153 205 2015-12-28T13:36:47Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:47Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:TopicWikitasks |next=Template:ContextWikitask }} This is the "!" template. Allows to have a | in a template by using <pre>{{¡}}</pre> </noinclude><includeonly>|</includeonly> b1bf2f91754e90290d94eb0ae3d576a1e25111e9 Template:Category 10 154 206 2015-12-28T13:36:48Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:48Z wikitext text/x-wiki <noinclude>{{TemplateSequence|prev=Template:!|next=Template:ContextWikitask}}This is the Template Category It defines the category with the given name and sets {{Link|target=Property:Has category}} [[Has category::Category:Category]] === Usage === <pre>{{Category|name=Category}}</pre> {{Category|name=Category}} </noinclude><includeonly>{{#if:{{{name|}}}|{{#set:|Has category=Category:{{{name}}}}}[[Category:{{{name}}}]]}}</includeonly> d6659bc68935edc42f0ee6fdaefe1d496ca3ff24 Template:ContextWikitask 10 105 207 146 2015-12-28T13:36:50Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:49Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:! |next=Template:Done }} This is the "ContextWikitask" template. This is the Template for the wikiTasks to generate Semantic Media Wiki related wiki pages for a Context === usage === <pre> {{ContextWikitask |context= }} </pre> ==== Examples ==== <pre> {{ContextWikitask |context=Presentation }} </pre> {{ContextWikitask |context=Presentation }} </noinclude><includeonly> {{wikitask|cmd=login|input={{urlencode:{{#realname:Visitor}}}}}}<br> {{wikitask|cmd=reset}}<br> *{{Link|target=Template:Wikitask}} *{{Link|target=TopicGenerator}} *{{Link|target=SiDIFTemplates}} {| class='wikitable sortable' !dialog smw !dialog sidif !no dialog smw !no dialog sidif |- | {{wikitask|cmd=runtemplate|engine=Rythm|input=sidif|dialog=TopicGenerator#dialog|template=TopicGenerator#template|params=tripleStoreMode:SMW,contextName:{{{context|}}}|targetpage=TopicGenerator2015/{{{context|}}}}} | {{wikitask|cmd=runtemplate|engine=Rythm|input=sidif|dialog=TopicGenerator#dialog|template=TopicGenerator#template|params=sidifInput:{{FULLPAGENAME}}#sidif,contextName:{{{context|}}}|targetpage=TopicGenerator2015/{{{context|}}}}} |{{wikitask|cmd=runtemplate|engine=Rythm|input=sidif|template=TopicGenerator#template|params=tripleStoreMode:SMW,contextName:{{{context|}}}|targetpage=TopicGenerator2015/{{{context|}}}}} |{{wikitask|cmd=runtemplate|engine=Rythm|input=sidif|template=TopicGenerator#template|params=sidifInput:{{FULLPAGENAME}}#sidif,contextName:{{{context|}}}|targetpage=TopicGenerator2015/{{{context|}}}}} |} </includeonly> 20faa3008fb45d5228e2b8ce2a0ee15cd870c195 Template:Done 10 94 208 135 2015-12-28T13:36:51Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:50Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:ContextWikitask |next=Template:Fixme }} This is the Template ''Done'' === usage === <pre>{{Done}}</pre> {{Done}} <pre>{{Done|size=12}}</pre> {{Done|size=12}} <pre>{{Done|size=36}}</pre> {{Done|size=36}} <pre>{{Done|size=48}}</pre> {{Done|size=48}} [[Category:Template]] </noinclude><includeonly><span style='color:green;font-size:{{{size|24}}}px'>✓</span></includeonly> 23c0522c0db867ac4dabb1825c63dabd35887344 Template:Icon 10 100 209 141 2015-12-28T13:36:52Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:51Z wikitext text/x-wiki <noinclude>__NOCACHE__<!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:HideSideBar |next=Template:IconLink }} This is the template for ProfiWiki stock icons which are derived from https://fortawesome.github.io/Font-Awesome/cheatsheet/ see [[:Category:Icon]] === examples === <pre> {{Icon}} </pre> {{Icon}} <pre> {{Icon|name=home}} </pre> {{Icon|name=home}} <pre> {{Icon|name=home}} </pre> {{Icon|name=home}} <pre> {{Icon|name=server}} </pre> {{Icon|name=server}} <pre> {{Icon|name=home|style=plain}} </pre> {{Icon|name=home|style=plain}} <pre> {{Icon|name=home|size=32}} </pre> {{Icon|name=home|size=32}} === implementation === <source lang='html4strict'> <img src="{{SERVER}}/font-awesome/svg/{{{name|question_and_answer}}}.svg" width="{{{size|48}}}" height="{{{size|48}}}" title="{{{name|question_and_answer}}}"> </source> [[Category:Template]]</noinclude><includeonly>{{#switch:{{{storemode|}}} |none= |#default={{#subobject:Icon_name={{{name|question_and_answer}}} |Icon style={{{style|shadow}}} |Icon size={{{size|48}}} }}}}<img src="{{SERVER}}/font-awesome/svg/{{{name|question_and_answer}}}.svg" width="{{{size|48}}}" height="{{{size|48}}}" title="{{{name|question_and_answer}}}">{{#switch:{{{viewmode|}}} |editable={{Icon|name=edit|size=16}}{{Link|target=Special:FormEdit/Icon/{{FULLPAGENAME}}|title=edit}}}}</includeonly> 09ec8c079e33c9b5164da02ef58e56e91149a0c1 Template:IconLink 10 93 210 134 2015-12-28T13:36:53Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:52Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->__NOCACHE__{{TemplateSequence |prev=Template:Icon |next=Template:Language }} This is the "IconLink" template. It uses the ImageLink extension to render clickable Links with an Icon. === Examples === <pre> {{IconLink}} </pre> {{IconLink}} <pre> {{IconLink|name=download|target=https://www.magicdraw.com/main.php?ts=download_demo&cmd_go_to_login=1&menu=download_demo&back_cmd=cmd_show|title=Magicdraw 18.0 LTR download}} </pre> {{IconLink|name=download|target=https://www.magicdraw.com/main.php?ts=download_demo&cmd_go_to_login=1&menu=download_demo&back_cmd=cmd_show|title=Magicdraw 18.0 LTR download}} <pre> {{IconLink|name=cubes|target=Template:PageSequence|title=PageSequence Template}} </pre> {{IconLink|name=cubes|target=Template:PageSequence|title=PageSequence Template}} </noinclude><includeonly>{{#ifeq: {{#sub:{{{target|}}}|0|4}} | http |<imgLink img='{{Icon|name={{{name|question_and_answer}}}|title={{{title|}}}}}' title='{{{title|}}}' href='{{{target|http://www.mediawiki.org}}}'></imgLink> |<imgLink img='{{Icon|name={{{name|question_and_answer}}}|title={{{title|}}}}}'>{{{target|Main Page}}}</imgLink> }}</includeonly> f9d1ea71c92173c54b2a4c8ed8ac4ebca01dc5d6 Template:Language 10 155 211 2015-12-28T13:36:54Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:54Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:IconLink |next=Template:Link }} From http://semantic-mediawiki.org/wiki/Template:Language This template is used for stating the language for some content page. Usage: <pre>{{language|master page=Page title|language=en}}</pre> The parameters have the following meaning: * <tt>master page</tt>: the «main» page about that topic, usually the article with the English documentation for the most current version * <tt>language</tt>: a standard [[Property:language code|language code]] </noinclude><includeonly> {{#ifeq:{{#ask: [[master page::{{{master page}}}]] [[language code::!{{{language}}}]]|format=count}}|0||<div style="text-align: center; background: #F7F7F7; border: 4px solid #B0BFE8; padding: 0.25em; "> {{#switch:{{{language}}}| de = Diese Seite in anderen Sprachen: | fr = Cette page dans d'autres langues : | ja = 他の言語でのこのページ: | nl = Deze pagina in andere talen: | ru = Эта страница на других языках: | zh-hans = 本页面的其他语种: | uk = Ця сторінка на інших мовах: | This page in other languages:}} {{#ask: [[master page::{{{master page}}}]] [[language code::!{{{language}}}]]| ?language code =| link=none| format=list| sep=,&nbsp;| template=languagelink| sort = language code| order = asc| limit = 10| searchlabel = [&hellip;] }} </div>}} <div style="display: none; read: none;"> [[master page::{{{master page}}}]] [[language code::{{{language}}}]] </div> </includeonly> c701582f81e92f16c66a26476c1487ce7e90b8e1 Template:Link 10 19 212 133 2015-12-28T13:37:02Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:36:55Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:Language |next=Template:PageSequence }} == template purpose == This is a Template for internal and external Links in WikiSon notation. === Motivation === In Mediawiki there are at least five different ways to use a link - we'd like to hide this complexity and add new functionality: # <pre>[[Main Page]]</pre>[[Main Page]] - internal link with no text # <pre>[[Main Page|Start Page]]</pre>[[Main Page|Start Page]] - internal link with text # <pre>[http://partner.bitplan.com] </pre>[http://partner.bitplan.com] - external link as footnote # <pre>[http://partner.bitplan.com BITPlan partner site] </pre>[http://partner.bitplan.com BITPlan partner site] - external link with text # <pre>http://partner.bitplan.com </pre>http://partner.bitplan.com - automatic external link == WikiSon Link == === Motivation === The Concept behind a link is <uml> Class Link { target title } ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager hide Circle skinparam note{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam package{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam usecase{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam activity{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam classAttribute{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam class{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } </uml> This calls for the WikiSon notation <pre> {{Link |target=sometarget |text=sometext }} </pre> === Link as WikiSon === Using the WikiSon Concept approach the Link Concept is represented via the Wiki [[:Category:Link]]<br> Especially there is a [[List of Links]] page available. === Importance === this is a fundamental concept should not be broken. Therefore {{Fixme|todo=This template needs to be protected soon|done=true}} {{Fixme|todo=This template needs to be distributed in the smartMediaWiki network of wikis|done=false}} === Examples === <pre> {{Link}} </pre> internal default link to Main Page {{Link}} <pre> {{Link|target=Main Page}} </pre> internal link to Main Page {{Link|target=Main Page}} <pre> {{Link|target=Main Page|title=Main Page}} </pre> internal link to Main Page with title {{Link|target=Main Page|title=Main Page}} <pre> {{Link|target=http://partner.bitplan.com}} </pre> external link {{Link|target=http://partner.bitplan.com}} <pre> {{Link|target=http://partner.bitplan.com|title=BITPlan Partner wiki}} </pre> external link with title {{Link|target=http://partner.bitplan.com|title=BITPlan Partner wiki}} === implementation === ==== Prerquisite ==== LocalSettings.php needs to have the StringFunctions enabled: <source lang='php'> # WF 2015-01-20 # allow string functions $wgPFEnableStringFunctions=true; </source> ==== Template source ==== The complexity of this template macro needs to be hidden ===== original Link Template ===== <pre> {{#set:Link target={{{target|}}} |Link title={{{title|}}} }}{{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | {{#set:Link targetUrl={{{target|}}}}}{{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }}| {{#set:Link targetPage={{{target|}}}}}{{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }}}}[[Category:Link]] </pre> ===== pretty printed Template macro ===== this version would unfortunately create unwanted newlines in the macro result <source lang='html4strict'> <!-- set concept attributes target (mandatory) and title (optional) --> {{#set:Link target={{{target|}}} |Link title={{{title|}}} }} <!-- check whether link is external or internal by comparing the firsts 4 chars with "http" --> {{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | <!-- in the http case (external link) set the targetURL property - it has the type "URL" and not "Text" like target or "Page" like targetPage --> {{#set:Link targetUrl={{{target|}}}}} <!-- display external link with our without title --> {{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }} | <!-- in the non-http case (internal link) set the targetPage property - it has the type "Page" and not "Text" like target or "Url" like targetUrl --> {{#set:Link targetPage={{{target|}}}}} <!-- display internal link with our without title --> {{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }} }} <!-- set the Category so that any page using this is displayed in this category --> [[Category:Link]] </source> ==== How the Link Macro works ==== The Link Macro checks whether the link is external or internal and displays the correct version. It sets the Link Concept's attributes by setting the correspond Semantic Media Wiki properties. it uses the following helper funcitons: * Substring: https://www.mediawiki.org/wiki/Extension:StringFunctions/en#.23sub: * #ifeq: https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/en#.23ifeq * #if: https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/en#.23if * #set: https://semantic-mediawiki.org/wiki/Help:Setting_values ===== Substring ===== <pre> {{#sub:string|start|length}} The start parameter, if positive (or zero), specifies a zero-based index of the first character to be returned. Example: {{#sub:Icecream|3}} returns cream. {{#sub:Icecream|0|3}} returns Ice. </pre> ===== if exists and non empty ===== <pre> {{#if: test string | value if test string is not empty | value if test string is empty (or only white space) }} </pre> ===== if equals ===== <pre> {{#ifeq: string 1 | string 2 | value if identical | value if different }} </pre> ===== setting Semantic values ===== <pre> {{#set:Has population=2,234,105 |Located in country=France |Has mayor=Bertrand Delanoë }} </pre> [[Categorie:Link]] [[Category:Template]]</noinclude><includeonly>{{#set:Link target={{{target|}}} |Link title={{{title|}}} }}{{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | {{#set:Link targetUrl={{{target|}}}}}{{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }}| {{#set:Link targetPage={{{target|}}}}}{{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }}}}</includeonly> 04c1dcdbfaed57a39f11b3c15ab4a8e55c28256f Template:PageSequence 10 103 213 144 2015-12-28T13:37:03Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:02Z wikitext text/x-wiki <noinclude>__NOCACHE__<!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:Link |next=Template:PdfBook }} This is the PageSequence template it allows for prev/next style page sequences to displayed with icons. See [[Template:Icon]] <pre> {{PageSequence |prev= |next= }} </pre> === example === <pre> {{PageSequence|prev=|next=bash|category=tools|categoryIcon=linux}} </pre> {{PageSequence|prev=|next=bash|category=tools|categoryIcon=linux}} <pre> {{PageSequence |prev=Template:Icon |next=Template:Link |category=Template |categoryIcon=file-text-o }} </pre> {{PageSequence |prev=Template:Icon |next=Template:Link |category=Template |categoryIcon=file-text-o }} </noinclude><includeonly>{{#set: |PageSequence next={{{next|}}} |PageSequence prev={{{prev|}}} |PageSequence category={{{category|}}} |PageSequence categoryIcon={{{categoryIcon|}}} }} <div style="display:table;border-collapse: collapse;"><div style="display: table-row;"> <div style="display: table-cell; vertical-align: middle">{{#if: {{{prev|}}}| {{#ifexist: {{{prev}}} |<imgLink img='{{Icon|name=nav_left_blue|title=previous}}'>{{{prev|}}}</imgLink> |<imgLink img='{{Icon|name=nav_left_red|title=previous}}'>{{{prev|}}}</imgLink>}} }} </div> <div style="display: table-cell;"> <div style="display: table-row;">{{#if: {{{categoryIcon|}}} |<imgLink img='{{Icon|name={{{categoryIcon|}}}|title={{{category|}}}}}'>:Category:{{{category|}}}</imgLink> }} </div> <div style="display: table-row;">{{Icon|name=edit|size=16}}{{Link|target=Special:FormEdit/PageSequence/{{FULLPAGENAME}}|title=edit}}</div> </div> <div style="display: table-cell; vertical-align: middle">{{#if: {{{next|}}} |{{#ifexist: {{{next}}} |<imgLink img='{{Icon|name=nav_right_blue|title=next}}'>{{{next|}}}</imgLink> |<imgLink img='{{Icon|name=nav_right_red|title=next}}'>{{{next|}}}</imgLink> }} }} </div> </div></div>{{#if: {{{category|}}} |{{Category|name={{{category|}}}}} }}</includeonly> acf701aab572b61582ff73d082495fabb08c006a Template:PdfBook 10 156 214 2015-12-28T13:37:04Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:03Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:Link |next=Template:ProfiWiki }} This is the "PdfBook" template. It creates a PDF File from a set of pages of a category. If the category page should be included it needs to be part of the category - reference itself. === Example === <pre> {{PdfBook}} </pre> {{PdfBook}} [[Category:Template]] </noinclude> <includeonly>[[Image:15x18-fileicon-pdf.png]][{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} Create a PDF Book of this category]</includeonly> bcebe291da1431411dff0fa9f22b2ac07ffb19ea Template:Sidif 10 95 215 136 2015-12-28T13:37:04Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:04Z wikitext text/x-wiki <noinclude>{{TemplateSequence |prev=Template:ProfiWiki |next=Template:TemplateSequence }} This is the Template <nowiki>sidif</nowiki>. It displays a link to the {{sidif}} website. === Usage === <pre> {{sidif}} </pre> ==== result ==== {{sidif}} === templates used === [[Template:Link]] [[Category:Template]] </noinclude><includeonly>{{Link|target=http://www.sidif.org|title='''Si'''mple '''D'''ata '''I'''nterchange '''F'''ormat (SiDIF)}}</includeonly> 136ed54eb309211e7a0b19134645d87d4d637bca Template:TemplateSequence 10 157 216 2015-12-28T13:37:05Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:05Z wikitext text/x-wiki <noinclude>{{TemplateSequence|prev=Template:Sidif|next=Template:TopicWikitasks}} This is the TemplateSequence template == example == <pre> {{TemplateSequence|prev=Template:Sidif|next=Template:TopicWikitasks}} </pre> {{TemplateSequence|prev=Template:Sidif|next=Template:TopicWikitasks}} </noinclude><includeonly>{{PageSequence |prev={{{prev|}}} |next={{{next|}}} |category=Template |categoryIcon=file-text-o }}</includeonly> 6126d947a2471f63c1c6e7462b4c7daae66d442f Template:TopicWikitasks 10 97 217 138 2015-12-28T13:37:07Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:06Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:PdfBook |next=Template:WhatLinksHere }} This is the Template for the wikiTasks to generate Semantic Media Wiki related wiki pages for Topics === usage === <pre> {{TopicWikitasks |context= |topic= |input= |plural= }} </pre> ==== Examples ==== <pre> {{TopicWikitasks |context=City |topic=City |plural=Cities |input=cities }} </pre> {{TopicWikitasks |context=City |topic=City |plural=Cities |input=cities }} </noinclude><includeonly> {{wikitask|cmd=login|input={{urlencode:{{#realname:Visitor}}}}}}<br> {{wikitask|cmd=reset}}<br> *{{Link|target=Template:Wikitask}} *{{Link|target=SiDIFTemplates}} {| class='wikitable sortable' ! {{{topic|}}} ! sidif ! smw |- ! template |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#template|targetpage=Template:{{{topic|}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#template|targetpage=Template:{{{topic|}}}}} |- ! form |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#form|targetpage=Form:{{{topic|}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#form|targetpage=Form:{{{topic|}}}}} |- ! list of |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#listof|targetpage=List of {{{plural|{{{topic|}}}s}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#listof|targetpage=List of {{{plural|{{{topic|}}}s}}}}} |- ! category |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#category|targetpage=Category:{{{topic|}}}}}{{Link|target=:Category:{{{topic|}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#category|targetpage=Category:{{{topic|}}}}}{{Link|target=:Category:{{{topic|}}}}} |- ! properties |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#properties|targetpage=Concept:{{{topic|}}}/properties}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#properties|targetpage=Concept:{{{topic|}}}/properties}} |- ! help |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#help|targetpage=Help:{{{topic|}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#help|targetpage=Help:{{{topic|}}}}} |- ! instances |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#instances|targetpage={{{plural|{{{topic|}}}s}}}}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#instances|targetpage={{{plural|{{{topic|}}}s}}}}} |- ! concept | {{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#concept|targetpage=Concept:{{{topic|}}}}} | {{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#concept|targetpage=Concept:{{{topic|}}}}} |- ! java code |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#javacodegen|targetpage={{FULLPAGENAMEE}}#{{{topic|}}} JavaCode}} |{{wikitask|cmd=runtemplate|input={{{input|}}}|params=tripleStoreMode:SMW,contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#javacodegen|targetpage={{FULLPAGENAMEE}}#{{{topic|}}} JavaCode}} |- | colspan='3' |<pre> {{wikitask|cmd=runtemplate|input={{{input|}}}|params=sidifInput:{{FULLPAGENAME}}#{{{input|}}},contextName:{{{context|}}},maintopicName:{{{topic|}}}|engine=Rythm|template=SiDIFTemplates#javacodegen|targetpage={{FULLPAGENAMEE}}#{{{topic|}}} JavaCode}} </pre> |} </includeonly> 7cb2301c19e50e82f18d7d0f09359e8d5294cfa3 Template:WhatLinksHere 10 158 218 2015-12-28T13:37:09Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:09Z wikitext text/x-wiki <noinclude>__NOCACHE__<!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:TopicWikitasks |next=Template:Wikitask }} This template shows all Pages that have a <pre>{{Link|target=...}}</pre> that points to the page using this template or the one given as a parameter === Examples === <pre> {{WhatLinksHere}} </pre> {{WhatLinksHere}} <pre> {{WhatLinksHere|Concept:Topic}} </pre> {{WhatLinksHere|Concept:Topic}} </noinclude><includeonly> {{#ask: [[Link target::{{{1|{{FULLPAGENAME}}}}}]] |format=ul }}</includeonly> 05675ca5a01052b60d50024ef7b422221af0f13a Template:Wikitask 10 98 219 139 2015-12-28T13:37:10Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:10Z wikitext text/x-wiki <noinclude>__NOCACHE__<!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:TopicWikitasks |next=Template:WikiIconTask }} This is the wikitask template for issuing commands to a RESTFUL Java WikiServer. It uses [[Template:WikiIconTask]] for calling the WikiTask Server. == Examples == === login === <pre> {{wikitask|cmd=login|input={{urlencode:{{#realname:Visitor}}}}}} </pre> {{wikitask|cmd=login|input={{urlencode:{{#realname:Visitor}}}}}} {{#realname:visitor}} === help === <pre> {{wikitask|cmd=help}} </pre> {{wikitask|cmd=help}} === reset === <pre> {{wikitask|cmd=reset}} </pre> {{wikitask|cmd=reset}} === debug === <pre> {{wikitask|cmd=debug}} </pre> {{wikitask|cmd=debug}} === run template === ==== sidif input ==== <source lang='xml' id='dadlovesmum'> dad loves mum kid loves mum kid loves dad kid likes granny </source> ==== freemarker template ==== <source lang='java' id='triplegraph' > <#assign rankdir="TB"/> <#assign triples=tripleStore.getTriples()/> == Triple graph == <graphviz format='svg'> digraph { rankdir="${rankdir}"; <#list triples as triple> "${triple.subject}" -> "${triple.object}" [label="${triple.predicate}"]; </#list> } </graphviz> </source> <pre> {{wikitask|cmd=runtemplate|input=dadlovesmum|template=triplegraph|targetpage=Dad loves mum 2015-03-14}} </pre> {{wikitask|cmd=runtemplate|input=dadlovesmum|template=triplegraph|targetpage=Dad loves mum 2015-03-14}} </noinclude><includeonly>{{#switch:{{{cmd|}}} |runtemplate={{WikiIconTask|cmd={{{cmd|help}}}|icon=play|input={{{input|}}}|params={{{params|}}}|template={{{template|}}}|dialog={{{dialog|}}}|engine={{{engine|}}}|targetpage={{{targetpage|}}}}} -> [[{{{targetpage|}}}]] |login={{WikiIconTask|cmd={{{cmd}}}|icon=sign-in|input={{{input|}}}}} |help={{WikiIconTask|cmd={{{cmd}}}|icon=help}} |reset={{WikiIconTask|cmd={{{cmd}}}|icon=recycle}} |#default={{WikiIconTask|cmd={{{cmd|help}}}|icon=wrench|input={{{input|}}}|template={{{template|}}}|engine={{{engine|}}}|targetpage={{{targetpage|}}}}}}}</includeonly> 95710e0f7ff031d4148d9065bd56b029ad290024 Template:WikiIconTask 10 99 220 140 2015-12-28T13:37:12Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:11Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:Wikitask |next=Template:! }} see [[Template:Wikitask]] <br> calls RESTFul Java WikiTask service on {{SERVERNAME}} === Examples=== <pre> {{WikiIconTask|cmd=help|icon=question-circle}} </pre> {{WikiIconTask|cmd=help|icon=question-circle}} <pre> {{WikiIconTask|cmd=debug|icon=wrench}} </pre> {{WikiIconTask|cmd=debug|icon=wrench}} <pre> {{WikiIconTask|cmd=reset|icon=refresh}} </pre> {{WikiIconTask|cmd=reset|icon=refresh}} === Source === <source lang='php'> <imgLink img='{{Icon|name={{{icon|}}}|title={{{cmd|}}}}}' target='_blank' title='{{{cmd|}}}' href='http://{{SERVERNAME}}:9089/wikiserver/task/{{{cmd|version}}} ?server={{urlencode:{{#sub:{{canonicalurl:{{PAGENAME}}}}|0|{{#pos:{{canonicalurl:{{PAGENAME}}}}|{{SCRIPTPATH}}/index.php/{{PAGENAMEE}}|0}}}}}} &scriptpath={{urlencode:{{SCRIPTPATH}}}} &contentlanguage={{CONTENTLANGUAGE}} &page={{FULLPAGENAMEE}} &input={{urlencode:{{{input|}}}}} &params={{urlencode:{{{params|}}}}} &template={{urlencode:{{{template|}}}}} &dialog={{urlencode:{{{dialog|}}}}} &engine={{{engine|}}} &targetpage={{urlencode:{{{targetpage|}}}}} &logo={{urlencode:{{{logo|http://web.bitplan.com/wp-content/uploads/sites/2/2013/05/mw_joomla_logo1.png}}}}}' > </imgLink> </source> === siteurl === {| !siteurl |{{#sub:{{canonicalurl:{{PAGENAME}}}}|0|{{#pos:{{canonicalurl:{{PAGENAME}}}}|{{SCRIPTPATH}}/index.php/{{PAGENAMEE}}|0}}}} |- !canonicalurl |{{canonicalurl:{{PAGENAME}}}} |- !PAGENAME |{{PAGENAME}} |- !SERVERNAME |{{SERVERNAME}} |- !SCRIPTPATH |{{SCRIPTPATH}} |- |} </noinclude><includeonly><imgLink img='{{Icon|name={{{icon|}}}|title={{{cmd|}}}}}' target='_blank' title='{{{cmd|}}}' href='http://{{SERVERNAME}}:9089/wikiserver/task/{{{cmd|version}}}?server={{urlencode:{{#sub:{{canonicalurl:{{PAGENAME}}}}|0|{{#pos:{{canonicalurl:{{PAGENAME}}}}|{{SCRIPTPATH}}/index.php/{{PAGENAMEE}}|0}}}}}}&scriptpath={{urlencode:{{SCRIPTPATH}}}}&contentlanguage={{CONTENTLANGUAGE}}&page={{FULLPAGENAMEE}}&input={{urlencode:{{{input|}}}}}&params={{urlencode:{{{params|}}}}}&template={{urlencode:{{{template|}}}}}&dialog={{urlencode:{{{dialog|}}}}}&engine={{{engine|}}}&targetpage={{urlencode:{{{targetpage|}}}}}&logo={{{logo|}}}'></imgLink></includeonly> bc2dfe5f290d23caad7e8ff847c5cdba8b3f00f2 Category:Template 14 159 221 2015-12-28T13:37:14Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:14Z wikitext text/x-wiki Standard Templates 5a107a1a02c878122bb015372af196522acdf28c Category:Category 14 160 222 2015-12-28T13:37:15Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:14Z wikitext text/x-wiki Pages for Categories 59a9e7a4ae6055c9f8909d012125f98d2fb053ee File:Index.png 6 161 223 2015-12-28T13:37:16Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Link.png 6 162 224 2015-12-28T13:37:17Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Element into input.png 6 163 225 2015-12-28T13:37:18Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Component.png 6 164 226 2015-12-28T13:37:19Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Registry.png 6 165 227 2015-12-28T13:37:19Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Category Icon.png 6 166 228 2015-12-28T13:37:20Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Concept Icon.png 6 167 229 2015-12-28T13:37:20Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Help Icon.png 6 168 230 2015-12-28T13:37:21Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:List Icon.png 6 169 231 2015-12-28T13:37:22Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Icon template.png 6 170 232 2015-12-28T13:37:23Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Form icon.jpg 6 171 233 2015-12-28T13:37:23Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Java icon.png 6 172 234 2015-12-28T13:37:24Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Concept:Context 108 35 235 154 2015-12-28T13:37:26Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:24Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=Context |pluralName=Contexts |icon=File:Registry.png |iconUrl=/images/d/d2/Registry.png |documentation=A Context groups some topics like a Namespace/Package |wikiDocumentation=A Context groups some topics like a Namespace/Package |defaultstoremode=property |listLimit= |cargo= |context=MetaModel |storemode=property }} {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === A Context groups some topics like a Namespace/Package === uml === <uml> title Context note as ContextDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as ContextNote A Context groups some topics like a Namespace/Package end note class Context { Text name Date since URL master } ContextNote .. Context Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Context name::+]] |Contexts see also * [[List of Contexts]] * [[Help:Context]] * [[Concept:Context]] * [[:Category:Context]] * [[:Template:Context]] * [[:Form:Context]] topic links: * [[:Category:Topic]] }} [[Category:Context]] 678c1819e1780a4bf392f49290838205ac721577 Concept:Topic 108 36 236 74 2015-12-28T13:37:29Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:27Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=Topic |pluralName=Topics |icon=File:Index.png |iconUrl=/images/master/a/ae/Index.png |documentation=A Topic is a Concept/Class/Thing/Entity |wikiDocumentation=A Topic is a Concept/Class/Thing/Entity |defaultstoremode=property |listLimit= |cargo=false |context=MetaModel |storemode=property }} {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === A Topic is a Concept/Class/Thing/Entity === uml === <uml> title Topic note as TopicDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as TopicNote A Topic is a Concept/Class/Thing/Entity end note class Topic { Text name Text pluralName Page icon URL iconUrl Text documentation Text wikiDocumentation Text defaultstoremode Number listLimit Boolean cargo Page context } TopicNote .. Topic Topic "topic (1)" -- "properties(*)" Property Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Topic name::+]] |Topics see also * [[List of Topics]] * [[Help:Topic]] * [[Concept:Topic]] * [[:Category:Topic]] * [[:Template:Topic]] * [[:Form:Topic]] topic links: * [[:Category:Property]] }} [[Category:Topic]] 8ce420f7ba14417c38868400e802f1ad44e3150e Concept:TopicLink 108 37 237 173 2015-12-28T13:37:32Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:30Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=TopicLink |pluralName=TopicLinks |icon=File:Link.png |iconUrl=/images/f/fd/Link.png |documentation=A TopicLink links two Concepts |wikiDocumentation=A TopicLink links two [[Concept:Topic]]s |defaultstoremode=subobject |listLimit= |cargo= |context=MetaModel |storemode=property }} {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === A TopicLink links two [[Concept:Topic]]s === uml === <uml> title TopicLink note as TopicLinkDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as TopicLinkNote A TopicLink links two Concepts end note class TopicLink { Text name Page source Text sourceRole Boolean sourceMultiple Text sourceDocumentation Page target Text targetRole Boolean targetMultiple Text targetDocumentation Boolean masterDetail } TopicLinkNote .. TopicLink ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[TopicLink source::+]] |TopicLinks see also * [[List of TopicLinks]] * [[Help:TopicLink]] * [[Concept:TopicLink]] * [[:Category:TopicLink]] * [[:Template:TopicLink]] * [[:Form:TopicLink]] topic links: }} [[Category:TopicLink]] f917a8cd763dc3f03e3c74f23bf64b9782ea1368 Concept:Property 108 38 238 76 2015-12-28T13:37:35Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:32Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=Property |pluralName=Properties |icon=File:Element_into_input.png |iconUrl=/images/6/6a/Element_into_input.png |documentation=a Property is a Feature/Attribute of a Topic |wikiDocumentation=see * https://semantic-mediawiki.org/wiki/Help:Properties_and_types * https://semantic-mediawiki.org/wiki/Help:Special_properties * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |defaultstoremode=property |listLimit= |cargo= |context=MetaModel |storemode=property }} {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === see * https://semantic-mediawiki.org/wiki/Help:Properties_and_types * https://semantic-mediawiki.org/wiki/Help:Special_properties * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes === uml === <uml> title Property note as PropertyDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as PropertyNote a Property is a Feature/Attribute of a Topic end note class Property { Text name Text label Page type Number index Number sortPos Boolean primaryKey Boolean mandatory Text namespace Number size Boolean uploadable Code defaultValue Text inputType Text allowedValues Text documentation Code values_from Boolean showInGrid Boolean isLink Boolean nullable Page topic } PropertyNote .. Property Property "usedByProperties (*)" -- "smw_type(1)" SMW_Type Topic "topic (1)" -- "properties(*)" Property ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Property name::+]] |Properties see also * [[List of Properties]] * [[Help:Property]] * [[Concept:Property]] * [[:Category:Property]] * [[:Template:Property]] * [[:Form:Property]] topic links: * [[:Category:SMW_Type]] }} [[Category:Property]] 8a9e7089c2efb2b0f4cdaea77046c2b3e321f02d Concept:SMW Type 108 39 239 161 2015-12-28T13:37:37Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:35Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=SMW_Type |pluralName=SMW_Types |icon=File:Component.png |iconUrl=/images/4/40/Component.png |documentation=an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |wikiDocumentation=see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |defaultstoremode=subobject |listLimit= |cargo= |context=MetaModel |storemode=property }} {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes === uml === <uml> title SMW_Type note as SMW_TypeDiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as SMW_TypeNote an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/fals values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes end note class SMW_Type { Text type Text documentation URL helppage Page typepage Text javaType Page usedByProperties } SMW_TypeNote .. SMW_Type Property "usedByProperties (*)" -- "smw_type(1)" SMW_Type ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[SMW_Type type::+]] |SMW_Types see also * [[List of SMW_Types]] * [[Help:SMW_Type]] * [[Concept:SMW_Type]] * [[:Category:SMW_Type]] * [[:Template:SMW_Type]] * [[:Form:SMW_Type]] topic links: }} [[Category:SMW_Type]] a3ff31f54546cc900f4652103e487197c239ff1a File:BITPlanLogo2012.svg 6 2 240 196 2015-12-28T13:37:38Z Wf 1 Wf uploaded a new version of [[File:BITPlanLogo2012.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 TopicGenerator 0 40 241 78 2015-12-28T13:37:39Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:39Z wikitext text/x-wiki __TOC__ === dialog === <source lang='java' id='dialog' cache='false'> @// Copyright (c) 2015 BITPlan GmbH @// @// This is a Wikitask / Rythm template that @// displays an AJAX GUI for generating SmartMediaWiki results @// @import org.sidif.wiki.Reference @import org.sidif.wiki.ReferenceManager @import org.sidif.wiki.Source @import org.sidif.wiki.PageCache @import org.sidif.wiki.WikiTask @import com.bitplan.mediawiki.japi.api.Page @import com.bitplan.mediawiki.japi.api.Rev @include(wiki.SiDIFTemplates.defs) @include(wiki.SiDIFTemplates.dialogdefs) @// get a link for the given pagetitle @def String getLink(String pageTitle, int revid) { String link=wikiTask.getServer()+wikiTask.getScriptpath()+"/index.php?title="+urlEncode(pageTitle); if (revid>0) { link+="&oldid="+revid; } return link; } @// get the parameters for the wikitask @def String getWikiTaskParams(String engine) { String params="?server="+urlEncode(wikiTask.getServer()); params+="&scriptpath="+urlEncode(wikiTask.getScriptpath()); params+="&page="+urlEncode(wikiTask.getPageTitle()); params+="&engine="+engine; return params; } @// run the given wikitask command @def doWikiTaskCmd(String cmd, String param) { @{ String icon="component"; String engine="Freemarker"; if ("runtemplate".equals(cmd)){ icon="media_play_green.png"; } if ("reset".equals(cmd)) { icon="refresh"; } if ("help".equals(cmd)) { icon="help"; } if ("debug".equals(cmd)) { icon="wrench"; } if ("refreshRef".equals(cmd)) { icon="refresh"; } String params=getWikiTaskParams(engine); } <a href='@(cmd)@(params)'>@(stockicon(icon,48,cmd,cmd))</a> } @// run the given wikitask command @def wikiTaskCmd(String cmd) { @doWikiTaskCmd(cmd,null) } @// run the given wikitask command with a parameter @def wikiTaskCmd(String cmd, String param) { @doWikiTaskCmd(cmd,param) } @// add styles for the generator @def generatorStyle(String i_____) { @(i_____) <style type="text/css"> @(i_____) // progress text that comes with progress bars @(i_____) // see http://stackoverflow.com/questions/12452594/how-can-i-add-label-inside-a-progress-bar-tag @(i_____) span.progresstext { @(i_____) font-family:'Arial'; @(i_____) position:relative; @(i_____) top:-1.5em; @(i_____) margin-left:50%;; @(i_____) font-size:small; @(i_____) } @(i_____) </style> } @// scripts for generators @def generatorScript() { <script> // JavaScript support for Y-Principle TopicGenerator // convert a string to make the first char lower case function firstToLower(string) { return string.charAt(0).toLowerCase() + string.slice(1); } // get the div where responses are shown function getResponseDiv() { var result=document.getElementById("response"); return result; } // get the div where errors are shown function getErrorDiv() { var result=document.getElementById("errorMessage"); return result; } // get the checkBox jquery object with the given id function getGeneratorElement(generatorId,postfix) { var result=$("#"+generatorId+postfix); return result; } // clear the given div function clearDiv(div) { div.innerHTML=''; } // add a TextElement with the given tag and message to the given parent function newTextElement(tag,msg) { var newElement=document.createElement(tag); var content = document.createTextNode(msg); newElement.appendChild(content); return newElement; } // add a message to the given div function addMessage(div, msg) { var newElement=newTextElement('pre',msg); div.appendChild(newElement); return newElement; } // progress on transfers from the server to the client (downloads) // see https://developer.mozilla.org/de/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest function updateProgress (oEvent) { if (oEvent.lengthComputable) { var percentComplete = oEvent.loaded / oEvent.total; // ... } else { // Unable to compute progress information since the total size is unknown } } // show an error Message // param errMsg: the message to show function errorMessage(errMsg) { var errDiv=getErrorDiv(); if (errDiv!=null) { addMessage(errDiv,errMsg); errDiv.style.display = 'block'; } else { alert(errMsg); } } // flag an error for the given id function flagError(id,msg) { setProgress(id,0,""); var checkBox=getGeneratorElement(id,""); var progresstext=getGeneratorElement(id,"_progress_pc"); var errorSpan=newTextElement('span','⚠ '+msg); errorSpan.style='color:red;font-size:14px'; progresstext[0].appendChild(errorSpan); return checkBox; } // handle an error that has been thrown function handleError(err,id) { flagError(id,err.message); // abusing checkBox as data lookup var checkBox=getGeneratorElement(id,""); var errMessage=checkBox[0].name+" ERROR:"+err.code+" "+err.name+" '"+err.message+"' line:"+err.lineNumber; errorMessage(errMessage); } // get the class name of the given object function getClass(obj) { if (typeof obj === "undefined") return "undefined"; if (obj === null) return "null"; return Object.prototype.toString.call(obj) .match(/^\[object\s(.*)\]$/)[1]; } // send the given form function sendForm(formData,action,id) { try { var oReq = new XMLHttpRequest(); oReq.addEventListener('progress', updateProgress, false); oReq.addEventListener('load', transferComplete, false); oReq.addEventListener('error', transferFailed, false); oReq.addEventListener('abort', transferCanceled, false); oReq.onload = ajaxSuccess; // http://stackoverflow.com/questions/921198/get-request-url-from-xhr-object var xhrProto = XMLHttpRequest.prototype, origOpen = xhrProto.open; xhrProto.open = function (method, url, async) { this._url = url; this._id = id; return origOpen.apply(this,arguments); }; var async=true; oReq.open('POST', action, async,id); // important - this makes the request a non-simple request with CORS // oReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // user defined header forces CORS? oReq.setRequestHeader('Header-Custom-WikitaskCORS', 'OK'); oReq.setRequestHeader('Accept','application/json'); oReq.send(formData); } catch(err) { handleError(err,id); } return false; // Prevent direct form page button submit action } // set the progress for the given check box id // and return the progress bar function setProgress(checkBoxId,progress,percent) { var checkBox=getGeneratorElement(checkBoxId,""); var progressbar=getGeneratorElement(checkBoxId,"_progress"); var progresstext=getGeneratorElement(checkBoxId,"_progress_pc"); // console.log(progressbar); // FIXME - do a true progress // progressbar.val(progress); if (progress==0) { progressbar[0].style.display = 'none'; } else { progressbar[0].style.display = 'block'; } progresstext[0].textContent=percent; return progressbar; } // start the generator for the given form, contextSetting, contextname, template and targetpage function startGenerator(form,contextSettingTxt,contextname,topic,template,targetpage,id) { var formData = new FormData(form); formData.append('server', "@(wikiTask.getServer())"); formData.append('scriptpath', "/@(wikiTask.getScriptpath())"); formData.append('engine', 'Rythm'); formData.append('input', 'sidif'); formData.append('page','Topic'); var action=form.action; // action= // action="http://phobos.bitplan.com:9089/wikiserver/task/runtemplate"; formData.append('template',template); formData.append('targetpage',targetpage); formData.append('id',id); // set the params from the contextSettings // e.g. wikiId:capri,sidifInput:Topic#sidif,contextName:MetaModel,maintopicName:Topic var contextSetting=JSON.parse(contextSettingTxt); contextSetting.maintopicName=topic; var contextSettingJson=JSON.stringify(contextSetting) formData.append('params',contextSettingJson); sendForm(formData,action,id); } // start the generators for the given form function startGenerators(form) { clearDiv(getErrorDiv()); clearDiv(getResponseDiv()); var generatorchecks= $(".checkBoxClass:checked"); generatorchecks.each(function(){ setProgress(this.id,1,""); // targetPage is the name of the checkbox var template=this.value; var ytname=$(this).attr("yt") var target=$(this).attr("target"); var contextname=$(this).attr("context"); var contextSetting=$(this).attr("contextsetting"); var id=this.id; // split e.g. Template_Context; var split = id.split('__'); // FIXME use yt and topic and generator objects instead var topic=split[1]; startGenerator(form,contextSetting,contextname,topic,template,target,id); }); return false; } // get SiDIF function getSiDIF(lbutton) { // {{wikitask // |cmd=runtemplate // |engine=Rythm // |input=sidif // |dialog=TopicGenerator#dialog // |template=TopicGenerator#template // |params=tripleStoreMode:SMW,contextName:{{{context|}}} // |targetpage=TopicGenerator2015/{{{context|}}}}} var contextSetting=JSON.parse(lbutton.value); var params='@(getWikiTaskParams("Rythm"))'; var wikiTaskLink="runtemplate"+params; wikiTaskLink+="&input="+encodeURIComponent(contextSetting.sidifInput); wikiTaskLink+="&dialog="+encodeURIComponent("TopicGenerator#dialog"); wikiTaskLink+="&template="+encodeURIComponent("TopicGenerator#template"); wikiTaskLink+="&targetpage="+encodeURIComponent("TopicGenerator2015/"+contextSetting.contextName); wikiTaskLink+="&params=tripleStoreMode:"+contextSetting.tripleStoreMode; wikiTaskLink+=",contextName:"+encodeURIComponent(contextSetting.contextName); wikiTaskLink+=",sidifInput:"+encodeURIComponent(contextSetting.sidifInput); // console.log(wikiTaskLink); window.location.replace(wikiTaskLink); } // show the given event with the given message function showEvent(evt, msg) { var doshow=true; if (evt.target instanceof XMLHttpRequest) { var xhr=evt.target; msg+=" target="+xhr._url; msg+=" responseType="+xhr.responseType; msg+=" status="+xhr.status; if (xhr.status==200) { doshow=false; } } if (doshow) { errorMessage(evt.type+" "+getClass(evt.target)+": "+msg); } return evt.target; } // event when the transfer was successfully completed function ajaxSuccess () { var json=this.responseText; // console.log(json); try { var jsonResult=JSON.parse(json); // console.log(jsonResult); var errorMsg=jsonResult.errorMsg; if (errorMsg!=null) { setProgress(jsonResult.id,100,""); addMessage(getResponseDiv(),errorMsg); } else { setProgress(jsonResult.id,0,""); var checkBox=getGeneratorElement(jsonResult.id,""); var progresstext=getGeneratorElement(jsonResult.id,"_progress_pc"); var target=$("#"+jsonResult.id).attr("target"); var targetRef=newTextElement('a',target); targetRef.href=jsonResult.targetUrl; targetRef.style='font-size:12px'; var doneSpan=newTextElement('span','✓'); doneSpan.style='color:green;font-size:14px'; progresstext[0].appendChild(targetRef); progresstext[0].appendChild(doneSpan); var deltaRef=newTextElement('a','Δ'); deltaRef.style='font-size:12px'; var revid=$("#"+jsonResult.id+"_rev").attr("revid"); deltaRef.href=jsonResult.targetUrl+"?diff=cur&oldid="+revid; progresstext[0].appendChild(deltaRef); } } catch (ex) { alert(ex.message+"\njson="+json); } } // event when transfer is complete function transferComplete(evt) { showEvent(evt,"transfer complete"); } // event when the transfer failed function transferFailed(evt) { var xhr=showEvent(evt,"transfer failed"); if (xhr instanceof XMLHttpRequest) { flagError(xhr._id,"transfer failed"); } } // event when the transer was cancelled function transferCanceled(evt) { showEvent(evt,"transfer canceled"); } </script> } @// run the selected generators @def runGenerators() { @{ String icon="media_play_green"; String cmd="run"; } <button type='submit' name='@cmd' value='@cmd' title='@cmd' onclick="return startGenerators(this.form);"> @(stockicon(icon,32,cmd,cmd)) </button> } @// display the given Reference as a row @def referenceRow(Reference ref) { <tr> <td>@(wikiTaskCmd("refreshRef",ref.getReferenceId()))</td> <td><a href='@(ref.getUrl())'>@(ref.getReferenceId())</a></td> <td>@(ref.getReferenceType().toString())</td> <td>@(ref.getAge())</td> <td>@(ref.isAvailable())</td> <td>@if(ref.getContent()) { @(ref.getContent().length()) } else { - }</td> </tr> } @// display the given Source as a row @def sourceRow(Source source) { <tr><td></td><td>@(source.getId())</td><td>@(source.getPageTitle())</td><td>@(source.getAge())</td><td>@(source.isCache())</td><td>@(source.getSource().length())</td></tr> } @// display the table of PageCache entries @def pageCacheTable(PageCache pageCache,String indent) { @(indent)<table class="table tablesorter sortable"> @(indent)<thead> @(indent) <tr><th>page</th><th>rev</th><th>timestamp</th></tr> @(indent)</thead> @(indent)<tbody> @{ List<String> pageTitles = new ArrayList<String>(pageCache.getCachedPages().keySet()); } @for (String pageTitle:pageTitles) { @{ Page page=pageCache.getCachedPages().get(pageTitle); Rev rev = PageCache.getPageRevision(page); int revid=-1; String timeStamp="?"; if (rev!=null) { revid=rev.getRevid(); timeStamp=rev.getTimestamp(); } } @(indent) <tr><td>@showLink(pageTitle, 0, "Cache0_"+revid, "")</td><td>@showLink(pageTitle, revid, "Cache_"+revid, "")</td><td>@(timeStamp)</td></tr> } @(indent)</tbody> @(indent)</table> } @// display the table of references and sources @def referenceTable(ReferenceManager rm) { <table class="table tablesorter sortable"> <thead> <tr><th></th><th>id</th><th>type</th><th>age</th><th>cache</th><th>size</th></tr> </thead> <tbody> @for (Reference reference:rm.referenceByReferenceId.values()) { @referenceRow(reference) @if (rm.getSourceById().get(reference.getReferenceId())!=null) { <tr><th colspan='3'>Sources by Id</th> @for (Source source:wikiTask.referenceManager.getSourceById().get(reference.getReferenceId()).values()) { @sourceRow(source) } } @if (rm.getSourceBySection().get(reference.getAnchor())!=null) { <tr><th colspan='3'>Sources by Section</th> @for (Source source:wikiTask.referenceManager.getSourceBySection().get(reference.getAnchor()).values()) { @sourceRow(source) } } } </tbody> </table> } @// show a link for the given pageTitle and revision id @def showLink(String pageTitle,int revid, String id, String indent) { @{ // default is unknown revision red link / create page approach String revname="click to create"; String style="style='color:red'"; if (revid>=0) { style="style='font-size: 12px'"; // normal link but small font revname="Rev "+revid; } String link=getLink(pageTitle,revid); } @(indent)<a href='@(link)' id='@(id)' revid='@(revid)' title='@(revname)' @(style)>@(pageTitle)</a> } @// show the page status link @def pageStatusLink(Topic topic,YT yt,Map<String, Page> statusMap) { @{ String pageTitle=yt.getPageTitle(topic); Page page=statusMap.get(pageTitle); int revid = -1; if (page != null) { Rev rev = PageCache.getPageRevision(page); if (rev!=null) { revid = rev.getRevid(); } } } @showLink(pageTitle, revid, yt.name+"__"+topic.name+"_rev", " ") } @// show a single row of generators for a given domain topic @def topicRow(ContextSetting contextSetting,Context context,Topic topic,Map<String, Page> statusMap,YT[] yts, int rownum) { <tr> <th>@(topic.name)<div style="margin: 0 auto; width: 48px"><img src='@(wikiTask.getServer())@(wikiTask.getScriptpath())@(topic.iconUrl)' alt='@(topic.name)'></div></th><th><label><input class='checkboxSelect' type='checkbox' id="select_row_@(rownum)" title='select row'/>→</label></th> @{ int colnum=0;} @for(YT yt:yts) { <td> <label for='@(yt.name)_@(topic.name)'> <input type="checkbox" class="checkBoxClass row_@(rownum) col_@(colnum)" contextsetting='@contextSetting.toJson()' context='@(context.name)' target='@yt.getPageTitle(topic)' yt='@(yt.name)' topic='@(topic.name)' id='@(yt.name)__@(topic.name)' name='@(yt.name):@(topic.name)' title='generate @(yt.getPageTitle(topic))' value="SiDIFTemplates#@(yt.template)"> </label> </td> <td> @pageStatusLink(topic,yt,statusMap) <progress id='@(yt.name)__@(topic.name)_progress' max='10' title='@(yt.name):@(topic.name)' style='display:none'></progress> <span id='@(yt.name)__@(topic.name)_progress_pc' class='progresstext'></span> </td> @{ colnum++;} } </tr> } @// display the generators @// sortable disabled - doesn't seem to work with selectAll logic @def showGeneratorTasks(WikiTask wikiTask,ContextSetting contextSetting) { @{ Context context=ContextFactory.getInstance().getContext(contextSetting); List<String> pageTitles = new ArrayList<String>(); if (context!=null) { for (YT yt : YT.yts) { for (Topic topic : context.getTopics()) { pageTitles.add(yt.getPageTitle(topic)); } } } Map<String, Page> statusMap = wikiTask.referenceManager.getPageCache() .updatePageStatus(pageTitles, true); } <h3>@(contextSetting.getTripleStoreMode())</h3> @if (context) { <form action='#'> <table class="table tablesorter tablesorter-blue"> <thead> <tr> <th width='12%'>@(runGenerators())</th> <th>Targets </th> @for(YT yt:YT.yts) { <th colspan='2' style="text-align:center">@(yt.label)</th> } </tr> @{ int colnum=0;} <tr> <th class='{sorter: false}'>Topics<br> <div id='reloadbuttoncontainer' style='width:80px;display:inline-block' > <button onclick='getSiDIF(this);return false;' value='@ContextSetting.fromWikiTaskAsSiDIF(wikiTask).toJson()' title='reload from SiDIF' style='display:inline-block'> <img src='/stockicons/16x16/shadow/arrow_down_blue.png'/> </button> <button onclick='getSiDIF(this);return false;' value='@contextSetting.asSMWContextSetting().toJson()' title='reload from SMW Triples' style='display:inline-block' > <img src='/stockicons/16x16/shadow/arrow_down_green.png'/> </button> </div> </th> <th class='{sorter: false}'><label><input type="checkbox" id="selectall" name="selectall" title='select all'/>↘</label></th> @for(YT yt:YT.yts) { <th class='{sorter: false}' width='14px'><label><input class='checkboxSelect' type='checkbox' id='select_col_@(colnum)' title='select all @(yt.label)'/>↓</label></th><th width='10%'><div style="margin: 0 auto; width: 48px"><img src='@(wikiTask.getServer())@(wikiTask.getScriptpath())@(yt.iconUrl)' alt='@(yt.label)'></div></th> @{ colnum++;} } </tr> </thead> <tbody id='generatortasktable'> @{ int rownum=0;} @for (Topic topic:context.getTopics()) { @topicRow(contextSetting,context,topic,statusMap,YT.yts,rownum++) } </tbody> </table> </form> } } @// show the HTML Page for the given context @def showHtml(ContextSetting contextSetting) { <!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> <title>@(title)</title> @jquery(" ") @style(" ") @selectall() @generatorStyle(" ") @generatorScript() </head> <body> <div id='container' class='container'> <div id="dialog" title="@(title)" > @(wikiTaskCmd("reset"))@(wikiTaskCmd("help"))@(wikiTaskCmd("debug")) <a href='@(wikiTask.getTargetLink().getUrl())'>@(wikiTask.getTargetpage())</a> called from <a href='@(wikiTask.getServer())@(wikiTask.getScriptpath())/index.php/@(wikiTask.getPageTitle())'>@(wikiTask.getPageTitle())</a> (@(wikiTask.getDuration()) msecs) <div id="tabs"> <ul> <li><a href="#generators">Generators</a></li> <li><a href="#pagecache">Page-Cache</a></li> <li><a href="#references">References</a></li> </ul> <div id="generators"> @(showGeneratorTasks(wikiTask,contextSetting)) </div> <div id="pagecache"> @pageCacheTable(wikiTask.referenceManager.getPageCache()," ") </div> <div id="references"> @referenceTable(wikiTask.referenceManager) </div> </div> <div id='errorMessage' style='color:red;font-size: 14px;border:1px solid red;display:none'></div> <div id='response' style='font-size: 14px;border:1px solid blue'></div> </div> </div> @dialog(" ") </body> </html> } @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @showHtml(contextSetting) </source> === template === <source lang='java' id='template'> @include(wiki.SiDIFTemplates.defs) @// handle error @def handleError(Throwable error) { error @(error.getClass().getName()): @(error.getMessage()) === stacktrace === <pre> @getStackTrace(error) </pre> } @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); Context context=ContextFactory.getInstance().getContext(contextSetting); Context smwContext=ContextFactory.getInstance().getContext(contextSetting.asSMWContextSetting()); String contextName=contextSetting.getContextName(); } @if (context==null) { Context (sidif): @(contextName) not found in SiDIF } else {== SiDIF == === @(contextName) SiDIF === <pre> @(context.asSiDIF()) </pre> === @(contextName) JSON === <pre> @(context.toJson()) </pre> } @if (smwContext==null) { Context (smw): @(contextName) not found in SMW triples of Wiki } else { == SMW == === @(contextName) SiDIF === <pre> @(context.asSiDIF()) </pre> === @(contextName) JSON === <pre> @(context.toJson()) </pre> } </source> 397362bced77662632f8e69ea1998ec1bfda1698 GraphViz 0 42 242 82 2015-12-28T13:37:41Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:40Z wikitext text/x-wiki == Graphviz == === Documentation === * http://www.graphviz.org * http://www.graphviz.org/Documentation/dotguide.pdf * http://www.tonyballantyne.com/graphs.html * http://www.graphviz.org/doc/fontfaq.txt * http://stackoverflow.com/questions/tagged/graphviz * http://graphs.grevian.org/reference ==== Mediawiki Graphviz extension ==== * https://www.mediawiki.org/wiki/Extension:GraphViz === Fiddles === * http://sandbox.kidstrythisathome.com/erdos/ * http://www.webgraphviz.com/ === Examples === ==== Graph ==== <source lang='php'> <graphviz format='svg'> graph graphname { Stakeholder -- Requirements; Requirements -- Samplecases; Requirements -- Model; Model -- Code; } </graphviz> </source> <graphviz format='svg'> graph graphname { Stakeholder -- Requirements; Requirements -- Samplecases; Requirements -- Model; Model -- Code; } </graphviz> ==== Hierarchy ==== <source lang='php'> <graphviz> digraph hierarchy { nodesep=1.0 // increases the separation between nodes node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour edge [color=Blue, style=dashed] //All the lines look like this Model->{Package1 Package2 System} Package1->{Class1 Class2} System->Subsystem {rank=same;Subsystem Class1 Class2} // Put them on the same level } </graphviz> </source> <graphviz> digraph hierarchy { nodesep=1.0 // increases the separation between nodes node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour edge [color=Blue, style=dashed] //All the lines look like this Model->{Package1 Package2 System} Package1->{Class1 Class2} System->Subsystem {rank=same;Subsystem Class1 Class2} // Put them on the same level } </graphviz> ==== HTML labels ==== <source lang='php'> digraph G { "Record" [ label=<<table> <tr> <td>A</td> <td bgcolor='#00CC11'>B</td> </tr> </table> > ]; } </source> <graphviz> digraph G { "Record" [ label=<<table> <tr> <td>A</td> <td bgcolor='#00CC11'>B</td> </tr> </table> > ]; } </graphviz> ==== UML ==== <source lang='php'> digraph obj{ nodesep=1.0 // increases the separation between nodes node[shape=record, color="#FF8000", fontname = "Technical"]; rankdir="BT"; teacher [label = "{<f0> Teacher|<f1> name\n |<f2> \n }"]; course [label = "{<f0> Course|<f1>title \n |<f2> \n }"]; student [label = "{<f0> Student|<f1>name \n |<f2> \n }"]; lesson [label = "{<f0> Lesson |<f1> \n |<f2> \n }"]; tutorial [label = "{<f0> Tutorial|<f1> \n |<f2> \n }"]; assessment[label = "{<f0> Assessment|<f1> \n |<f2> \n }"]; coursework [label = "{<f0> Coursework|<f1> \n |<f2> \n }"]; exam [label = "{<f0> Exam|<f1> \n |<f2> \n }"]; teacher->course [dir="forward",arrowhead="none",arrowtail="normal",headlabel=" 1",taillabel=" 1.."]; student->course [dir="forward",arrowhead="none",arrowtail="normal",headlabel=" 1",taillabel=" 1.."]; lesson->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; tutorial->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; assessment->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; coursework->assessment; exam->assessment; {rank=same; teacher course student}; } </source> <graphviz> digraph obj{ nodesep=1.0 // increases the separation between nodes node[shape=record, color="#FF8000", fontname = "Technical"]; rankdir="BT"; teacher [label = "{<f0> Teacher|<f1> name\n |<f2> \n }"]; course [label = "{<f0> Course|<f1>title \n |<f2> \n }"]; student [label = "{<f0> Student|<f1>name \n |<f2> \n }"]; lesson [label = "{<f0> Lesson |<f1> \n |<f2> \n }"]; tutorial [label = "{<f0> Tutorial|<f1> \n |<f2> \n }"]; assessment[label = "{<f0> Assessment|<f1> \n |<f2> \n }"]; coursework [label = "{<f0> Coursework|<f1> \n |<f2> \n }"]; exam [label = "{<f0> Exam|<f1> \n |<f2> \n }"]; teacher->course [dir="forward",arrowhead="none",arrowtail="normal",headlabel=" 1",taillabel=" 1.."]; student->course [dir="forward",arrowhead="none",arrowtail="normal",headlabel=" 1",taillabel=" 1.."]; lesson->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; tutorial->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; assessment->course [dir="forward",arrowhead="diamond",arrowtail="normal"]; coursework->assessment; exam->assessment; {rank=same; teacher course student}; } </graphviz> 90482c904d368dc4f33c92a8c338e8f7ef3a8145 Rythm 0 49 243 89 2015-12-28T13:37:41Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:41Z wikitext text/x-wiki === What is Rythm? === The {{Link|target=http://rythmengine.org|title=Rhythm template engine}} is inspired by the syntax of {{Link|target=http://weblogs.asp.net/scottgu/introducing-razor|title=Microsoft's Razor ViewEngine for Asp.Net}} It supports java code right in the templates === Links === * {{Link|target=http://stackoverflow.com/tags/rythm|title=Rythm questions on stackoverflow}} * {{Link|target=http://fiddle.rythmengine.com/#/all_demos|title=Rythm fiddle with demos}} * {{Link|target=https://github.com/greenlaw110/Rythm/issues|title=Issues}} === Examples === *http://partner.bitplan.com/index.php/Example_WF_ZQuestion/questionsnew *http://partner.bitplan.com/index.php/Example_ZQuestion === Author === {{Link|target=Green Luo}} === WhatLinksHere === {{WhatLinksHere}} 34235ae52f699b523244c3b2e60069c701fd52c9 Freemarker 0 173 244 2015-12-28T13:37:42Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:42Z wikitext text/x-wiki Freemarker is one of the Java based template engines being used by the MediaWikiBotJ RESTful Java server === Documentation === * http://freemarker.org * http://freemarker.org/docs/ref_directive_if.html * http://freemarker.org/docs/ref_directive_macro.html === WhatLinksHere === {{WhatLinksHere}} c7cd7f0c2363d1d1374bbdb2ddd0bbe03d537b03 Property:IsA 102 174 245 2015-12-28T13:37:43Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:42Z wikitext text/x-wiki {{FULLPAGENAME}} is a Property of type [[Has type::Text]] being used internally by {{ProfiWiki}} in the {{Link|target=MetaModel}} Context. e221cc2171365e41c45a73625564df2f5ee1bc32 Template:ProfiWiki 10 175 246 2015-12-28T13:37:43Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:43Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:PdfBook |next=Template:Sidif }} This is the "ProfiWiki" template. It shows a link to the ProfiWiki website === Example === <pre> {{ProfiWiki}} </pre> {{ProfiWiki}} [[Category:Template]]</noinclude><includeonly>{{Link|target=http://www.profiwiki.de|title=ProfiWiki}}</includeonly> 186389758c9e43311ce379ae0b597a28d4ab0477 ProfiWikiContext 0 176 247 2015-12-28T13:37:45Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:44Z wikitext text/x-wiki {{Context |name=ProfiWikiContext |since=2015/01/13 |master=http://master.bitplan.com/index.php/ProfiWikiContext |storemode=property }} {{Context |name=ProfiWikiContext |storemode=none |viewmode=masterdetail }} = WikiTask = {{ContextWikitask |context=ProfiWikiContext }} = sidif = <source lang='java' id='sidif'> # # Context:ProfiWikiContext # ProfiWikiContext isA Context "ProfiWikiContext" is name of it # #Fixme # Fixme isA Topic "Fixme" is name of it "Fixmes" is pluralName of it "I mark something that needs to be fixed optionally with what needs to be done" is documentation of it "I mark something that needs to be fixed optionally with what needs to be done" is wikiDocumentation of it "File:FixmeIcon.png" is icon of it "/images/e/e3/FixmeIcon.png" is iconUrl of it "subobject" is defaultstoremode of it false is cargo of it "ProfiWikiContext" is context of it Fixme_done addsTo it Fixme_todo addsTo it # properties of Fixme # property done Fixme_done isA Property "done" is name of it "done" is label of it "Boolean" is type of it 1 is index of it false is primaryKey of it true is mandatory of it false is uploadable of it "false" is defaultValue of it "Has this been done?" is documentation of it false is showInGrid of it false is isLink of it "Fixme" is topic of it # property todo Fixme_todo isA Property "todo" is name of it "todo" is label of it "Text" is type of it 2 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "What needs to be done to get this fixed?" is documentation of it false is showInGrid of it false is isLink of it "Fixme" is topic of it </source> <headertabs/> 2db96d522bcd6f4b30fe8ce5903cf9d4aec52e04 Property:Language code 102 177 248 2015-12-28T13:37:46Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:45Z wikitext text/x-wiki This property is used to provide a '''language code''' for internationalising pages (being a [[has type::Text]]). See {{Link|target=Template:Language}} how to get multi-language versions of a page The values should be standard abbreviations for languages, such as "en", "de" or "Zh-tw". Pages without such a code are usually English. <span class='lang-de'>de=German</span> <span class='lang-en'>en=English</span> <span class='lang-es'>es=Spanish</span> <span class='lang-fr'>fr=French</span> <span class='lang-ja'>ja=Japanese</span> <span class='lang-nl'>nl=Dutch</span> <span class='lang-ru'>ru=Russian</span> <span class='lang-zh-hans'>zh-hans=Chinese</span> <span class='lang-uk'>uk=Ucraine</span> 9e6825bf16ed935d2502bd6cb788e0a8e88685c7 Property:Fixme todo 102 178 249 2015-12-28T13:37:46Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:46Z wikitext text/x-wiki {{Property |name=todo |label=todo |documentation=What needs to be done to get this fixed? |type=Special:Types/Text |index=2 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Fixme |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 171deb6aec9ada98d7216af5ba858ccb66a98270 Property:Fixme done 102 179 250 2015-12-28T13:37:47Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:47Z wikitext text/x-wiki {{Property |name=done |label=done |documentation=Has this been done? |type=Special:Types/Boolean |index=1 |sortPos= |primaryKey=false |mandatory=true |namespace= |size= |uploadable=false |defaultValue=false |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Fixme |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 45010bfdb32a2bfb6b29bd9798020a5a36ea5d13 Template:Fixme 10 180 251 2015-12-28T13:37:48Z Wf 1 transfered by WikiBackup wikiTask at 2015-12-28T13:37:47Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:Done |next=Template:HideSideBar }} This is the "Fixme" template. It should be called in the following format: <pre> {{Fixme |done= |todo= }} </pre> {{Fixme|todo=change so that empty done parameter sets SMW done property as "false" and Fixme's with no attributes show up in the List of Fixmes|done=false}} {{Fixme|todo=explain me|done=false}} Edit the page to see the template text. </noinclude><includeonly>{| class="wikitable" ! done | [[Fixme_done::{{{done|}}}]] |- ! todo | [[Fixme_todo::{{{todo|}}}]] |} </includeonly> 48332bb163c62d94d263b8418abac0a4b9b0e789 File:FixmeIcon.png 6 181 252 2015-12-28T13:37:49Z Wf 1 File uploaded with MsUpload wikitext text/x-wiki File uploaded with MsUpload a655f04485ff507c02499d137d22a0d3e0ea32c2 File:SMWMakeGoodDebugging.mp4 6 182 253 2015-12-28T16:36:34Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 SMW PHPUnit Test Debugging 0 183 254 2015-12-28T16:38:04Z Wf 1 Created page with "<video></video>" wikitext text/x-wiki <video></video> 8cfcba2b4874347ddce301515b250a2977b7dd9c 255 254 2015-12-28T16:40:30Z Wf 1 wikitext text/x-wiki <HTML5video width="640" height="480" autoplay="true">Blue_Whale</HTML5video> 5f3311106dfbdddf116825f3d9ccaee2b2e8e937 256 255 2015-12-28T16:46:04Z Wf 1 wikitext text/x-wiki <HTML5video width="640" height="480" autoplay="true">SMWMakeGoodDebugging</HTML5video> 9fdb723d26f436edcc8e3913a7597a6328708a36 257 256 2015-12-28T16:47:24Z Wf 1 wikitext text/x-wiki <HTML5video width="640" height="480" autoplay="true">SMWMakeGoodDebugging</HTML5video> a8c6606de7f214825fcc8b589e01df5572a82dfd SMW PHPUnit Test Debugging 0 183 258 257 2015-12-28T16:48:06Z Wf 1 wikitext text/x-wiki see https://www.semantic-mediawiki.org/wiki/User:WolfgangFahl/Workdocumentation_2015-12-27#tab=Semantic_Mediawiki_Debugging <HTML5video width="640" height="480" autoplay="true">SMWMakeGoodDebugging</HTML5video> f8ad152a1e4554114966b7da04997c40144428bc 259 258 2015-12-28T16:48:16Z Wf 1 wikitext text/x-wiki see https://www.semantic-mediawiki.org/wiki/User:WolfgangFahl/Workdocumentation_2015-12-27#tab=Semantic_Mediawiki_Debugging<br> <HTML5video width="640" height="480" autoplay="true">SMWMakeGoodDebugging</HTML5video> 9ca3042f7acb50df5d007e100a829309104ae5dc Main Page 0 1 262 193 2016-01-17T15:46:57Z Wf 1 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right]] === What is a ProfiWiki ?=== * Structured and unstructured content * Easy search * Quick data entry and linking * Team collaboration === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|100px]] ==== Make the ProfiWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] db791ba7faa56092053a84bb42c1cc2d9ef3b853 263 262 2016-01-17T15:47:32Z Wf 1 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right|link=ProfiWiki]] === What is a [[ProfiWiki]] ?=== * Structured and unstructured content * Easy search * Quick data entry and linking * Team collaboration === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|100px]] ==== Make the ProfiWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] ce6d5dbca4e82695e495c16be83412636f5d623e 300 263 2016-01-30T04:35:33Z Wf 1 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right|link=ProfiWiki]] === What is a [[ProfiWiki]] ?=== * Structured and unstructured content * Easy search * Quick data entry and linking * Team collaboration === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|100px]] ==== Make the ProfiWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] 8b5a9ad90153aaa93b51af467fcb280568a108d4 ProfiWiki 0 185 264 2016-01-17T15:51:47Z Wf 1 Created page with "= Professional Wiki =" wikitext text/x-wiki = Professional Wiki = 1db39f5d70a95380d6ddfbf6420a51c2c9927136 265 264 2016-01-17T15:56:12Z Wf 1 wikitext text/x-wiki <div style="font-size:40px"> Professional Wiki </div> 32ad58ecd91cf865fab1c1af3c4e26387a1e735d 266 265 2016-01-17T15:57:15Z Wf 1 wikitext text/x-wiki <div style="font-size:24px"> Professional Wiki for your Enterprise Why use a "me to" product if you can have the original? </div> 4970afd86bb29c99c0d9aa9076ba157e61c3e012 267 266 2016-01-17T15:58:39Z Wf 1 wikitext text/x-wiki <div style="font-size:24px"> Professional Wiki for your Enterprise ProfiWiki is based on MediaWiki - you get the original proven technology with all it's features and possible extensions. </div> 447a249f037fb3e82fad1ad87cf4474becc105f7 268 267 2016-01-17T15:59:01Z Wf 1 wikitext text/x-wiki <div style="font-size:24px;font-color:blue"> Professional Wiki for your Enterprise *ProfiWiki is based on MediaWiki - you get the original proven technology with all it's features and possible extensions. </div> 09b2b9ea7f12139104cde4706b145b778c805d15 269 268 2016-01-17T15:59:42Z Wf 1 wikitext text/x-wiki <div style="font-size:24px;color:#FF8000"> Professional Wiki for your Enterprise *ProfiWiki is based on MediaWiki - you get the original proven technology with all it's features and possible extensions. </div> 6f7199802016e84928703dbea9caed21f86911e2 270 269 2016-01-17T16:00:33Z Wf 1 wikitext text/x-wiki <div style="font-size:24px;color:#FF8000"> Professional Wiki for your Enterprise *ProfiWiki is based on [[File:MediaWikiLogo.png|100px]] - you get the original proven technology with all it's features and possible extensions. </div> 876a50017a2786928711c559bca160f88ee65291 271 270 2016-01-17T16:02:38Z Wf 1 wikitext text/x-wiki <div style="font-size:24px;color:#FF8000"> Professional Wiki for your Enterprise *ProfiWiki is based on [[File:MediaWikiLogo.png|100px]] </div> == Why use the original MediaWiki? == * there are some 2.500 {{Link|target=https://www.mediawiki.org/wiki/Category:All_extensions|title=Extensions}} available afac6559713c3e0710b1623b8fbb176fc3b8a1be 272 271 2016-01-17T16:10:06Z Wf 1 wikitext text/x-wiki <div style="font-size:24px;color:#FF8000"> Professional Wiki for your Enterprise *ProfiWiki is based on [[File:MediaWikiLogo.png|100px]] </div> == Why use the original MediaWiki? == * there are some 2.500 {{Link|target=https://www.mediawiki.org/wiki/Category:All_extensions|title=Extensions}} available * it is free (as in free beer) * it is free (as in OpenSource) * the WikiMedia Foundation keeps maintaining it as the infrastucture for {{Link|target=http://www.wikipedia.org|title=WikiPedia}} 597065e08fef6b940278e01fb720a70c09f7080e 273 272 2016-01-17T16:12:46Z Wf 1 wikitext text/x-wiki <div style="font-size:24px;color:#FF8000"> Professional Wiki for your Enterprise ProfiWiki is based on [[File:MediaWikiLogo.png|100px|link=http://www.mediawiki.org]] </div> == Why use the original MediaWiki? == * there are some 2.500 {{Link|target=https://www.mediawiki.org/wiki/Category:All_extensions|title=Extensions}} available * it is free (as in free beer) * it is free (as in OpenSource) * the WikiMedia Foundation keeps maintaining it as the infrastucture for {{Link|target=http://www.wikipedia.org|title=WikiPedia}} <div class="bitplanorange"> ProfiWiki is based on [[File:SemanticMediaWikiLogo.png|100px|link=http://www.semantic-mediawiki.org]] </div> f3ab5afc6e07a8c51fb6d7a55e5d36feb35d10e2 275 273 2016-01-17T16:16:53Z Wf 1 wikitext text/x-wiki <div style="font-size:24px;color:#FF8000"> Professional Wiki for your Enterprise </div> <div class="bitplanorange"> ProfiWiki is based on [[File:MediaWikiLogo.png|100px|link=http://www.mediawiki.org]] </div> == Why use the original MediaWiki? == * there are some 2.500 {{Link|target=https://www.mediawiki.org/wiki/Category:All_extensions|title=Extensions}} available * it is free (as in free beer) * it is free (as in OpenSource) * the WikiMedia Foundation keeps maintaining it as the infrastucture for {{Link|target=http://www.wikipedia.org|title=WikiPedia}} <div class="bitplanorange"> ProfiWiki is based on [[File:SemanticMediaWikiLogo.png|100px|link=http://www.semantic-mediawiki.org]] </div> 93489dd328cf6f16afa8ef632b46b38fda98887b 276 275 2016-01-17T16:22:41Z Wf 1 wikitext text/x-wiki <div style="font-size:24px;color:#FF8000"> Professional Wiki for your Enterprise </div> <div class="bitplanorange"> ProfiWiki is based on [[File:MediaWikiLogo.png|100px|link=http://www.mediawiki.org]] </div> == Why use the original MediaWiki? == * there are some 2.500 {{Link|target=https://www.mediawiki.org/wiki/Category:All_extensions|title=Extensions}} available * there are many different skins available * it is free (as in free beer) * it is free (as in OpenSource) * the WikiMedia Foundation keeps maintaining it as the infrastucture for {{Link|target=http://www.wikipedia.org|title=WikiPedia}} Seeing is believing ... <youtube>U1zBJO_aIvc</youtube> <div class="bitplanorange"> ProfiWiki is based on [[File:SemanticMediaWikiLogo.png|100px|link=http://www.semantic-mediawiki.org]] </div> 6b0ed301f1bf4770ec955ce27d6d9a99e2123715 277 276 2016-01-17T16:24:02Z Wf 1 /* Why use the original MediaWiki? */ wikitext text/x-wiki <div style="font-size:24px;color:#FF8000"> Professional Wiki for your Enterprise </div> <div class="bitplanorange"> ProfiWiki is based on [[File:MediaWikiLogo.png|100px|link=http://www.mediawiki.org]] </div> == Why use the original MediaWiki? == * there are some 2.500 {{Link|target=https://www.mediawiki.org/wiki/Category:All_extensions|title=Extensions}} available * there are many different skins available * it is free (as in free beer) * it is free (as in OpenSource) * the WikiMedia Foundation keeps maintaining it as the infrastucture for {{Link|target=http://www.wikipedia.org|title=WikiPedia}} == An Example: Seeing is believing ... == <youtube>U1zBJO_aIvc</youtube> The above video is added by simply using the youtube Extension <pre> <youtube>U1zBJO_aIvc</youtube> </pre> <div class="bitplanorange"> ProfiWiki is based on [[File:SemanticMediaWikiLogo.png|100px|link=http://www.semantic-mediawiki.org]] </div> 75e3e2937373192d95435509b57030927983b587 278 277 2016-01-17T16:24:25Z Wf 1 /* An Example: Seeing is believing ... */ wikitext text/x-wiki <div style="font-size:24px;color:#FF8000"> Professional Wiki for your Enterprise </div> <div class="bitplanorange"> ProfiWiki is based on [[File:MediaWikiLogo.png|100px|link=http://www.mediawiki.org]] </div> == Why use the original MediaWiki? == * there are some 2.500 {{Link|target=https://www.mediawiki.org/wiki/Category:All_extensions|title=Extensions}} available * there are many different skins available * it is free (as in free beer) * it is free (as in OpenSource) * the WikiMedia Foundation keeps maintaining it as the infrastucture for {{Link|target=http://www.wikipedia.org|title=WikiPedia}} == An Example: Seeing is believing ... == <youtube>U1zBJO_aIvc</youtube> <br> The above video is added by simply using the youtube Extension <pre> <youtube>U1zBJO_aIvc</youtube> </pre> <div class="bitplanorange"> ProfiWiki is based on [[File:SemanticMediaWikiLogo.png|100px|link=http://www.semantic-mediawiki.org]] </div> 4d8e5fa5c22f2981c99b0dfd8c0e54ccfb2b44bd 279 278 2016-01-17T16:38:28Z Wf 1 /* An Example: Seeing is believing ... */ wikitext text/x-wiki <div style="font-size:24px;color:#FF8000"> Professional Wiki for your Enterprise </div> <div class="bitplanorange"> ProfiWiki is based on [[File:MediaWikiLogo.png|100px|link=http://www.mediawiki.org]] </div> == Why use the original MediaWiki? == * there are some 2.500 {{Link|target=https://www.mediawiki.org/wiki/Category:All_extensions|title=Extensions}} available * there are many different skins available * it is free (as in free beer) * it is free (as in OpenSource) * the WikiMedia Foundation keeps maintaining it as the infrastucture for {{Link|target=http://www.wikipedia.org|title=WikiPedia}} == An Example: Seeing is believing ... == <youtube>U1zBJO_aIvc</youtube> <div class="bitplanorange"> ProfiWiki is based on [[File:SemanticMediaWikiLogo.png|100px|link=http://www.semantic-mediawiki.org]] </div> <youtube>OM6XIICm_qo</youtube> cc6b62387ef9f398476f3a3b13acbc6585b25e0f MediaWiki:Common.css 8 186 274 2016-01-17T16:15:54Z Wf 1 Created page with "/* CSS placed here will be applied to all skins */ /** BITPlan **/ div.bitplanorange { margin-top: 0.4cm; font-size: 125%; color: rgb(255, 128, 0); margin-bottom: 0.0cm; }" css text/css /* CSS placed here will be applied to all skins */ /** BITPlan **/ div.bitplanorange { margin-top: 0.4cm; font-size: 125%; color: rgb(255, 128, 0); margin-bottom: 0.0cm; } 7d95e79ac44d97f028d89041af825f659c186eaa SiDIFTemplates 0 31 282 198 2016-01-26T08:12:45Z Wf 1 transfered by WikiBackup wikiTask at 2016-01-26T08:12:43Z wikitext text/x-wiki __TOC__ == Overview == This page contains {{sidif}} templates. These templates can be used as a template for a {{Link|target=Template:Wikitask}}. For convenience there is a template {{Link|target=Template:TopicWikitasks}} that creates a set of wikitasks for some of the templates below. == Templates == === category === <source lang='java' id='category' cache='true'> @include(wiki.SiDIFTemplates.defs) @// macro to create pageschema from simela triples @def pageschema(Topic topic) { @escape("xml") { <PageSchema> <semanticforms_Form name="@topic.name"> <standardInputs freeTextLabel="Free text"/> </semanticforms_Form> <Template name="@topic.name" format="standard"> @for (Property property:topic.propertiesByIndex()) { <Field name="@property.name"> <semanticforms_FormInput> <InputType>text</InputType> </semanticforms_FormInput> <semanticmediawiki_Property name="@(topic.name) @(property.name)"> <Type>Text</Type> </semanticmediawiki_Property> </Field> } </Template> </PageSchema> } } @// generate the category for the given topic @def category(Topic topic) { __NOTOC__ @// show the wikiDocumentation for this category {{#ask: [[Topic name::@(topic.name)]] | ?Topic wikiDocumentation= | mainlabel=-}} @(topic.pluralName) may be added and edited with the form [[has default form::@(topic.name)]] * [[List of @(topic.pluralName)]] <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> @topic.name @(i18n("description")) <div class="mw-collapsible-content"> @uml("uml",topic) * [[Help:@topic.name]] * [[Concept:@topic.name]] * [[:Template:@topic.name]] * [[:Form:@topic.name]] === Properties === @for (Property property:topic.propertiesByIndex()) { * [[Property:@(topic.name) @(property.name)]] } </div> </div> } @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @category(contextSetting.getMaintopic()) </source> === listof === <source lang='java' id='listof' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the list of page for the given topic @def listof(Topic topic) { __NOCACHE__ @topicheader(topic) == @topic.pluralName == {{#forminput:form=@topic.name|button text=add @topic.name}} @("{{")#ask: [[Concept:@topic.name]] @for (Property property:topic.propertiesByIndex()) { | ?@topic.name @(property.name) = @property.name } @("}}") <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> === SiDIF === <div class="mw-collapsible-content"> @("{{")#ask: [[Concept:@topic.name]] | ?#=pageid @for (Property property:topic.propertiesByIndex()) { | ?@topic.name @property.name = @property.name } | mainlabel=- | format=template | named args=yes | template=@topic.name | userparam=sidif | limit=@topic.listLimit @("}}") </div> </div> [[:Category:@topic.name]] } @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @listof(contextSetting.getMaintopic()) </source> === concept === <source lang='java' id='concept' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the given topic as a concept @def topic(Topic topic) { __NOCACHE__ @("{{")Topic |name=@topic.name |pluralName=@if (topic.pluralName) {@(topic.pluralName)} else { @(topic.name)s } |icon=@topic.icon |iconUrl=@topic.iconUrl |documentation=@topic.documentation |wikiDocumentation=@topic.wikiDocumentation |defaultstoremode=@topic.defaultstoremode |listLimit=@topic.listLimit |cargo=@topic.cargo |context=@topic.context |storemode=property @("}}") @("{{")Topic |viewmode=masterdetail |storemode=none @("}}") {{#forminput:form=Property|button text=add Property}} === Documentation === @topic.wikiDocumentation @uml("uml",topic) @("{{")#concept: @if (topic.conceptProperty) { [[@(topic.name) @(topic.conceptProperty.name)::+]] } else { [[Category:@topic.name]] } |@(topic.pluralName) @seealso(topic) @("}}") [[Category:@topic.name]] } @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @topic(contextSetting.getMaintopic()) </source> === propertiesdefs === <source lang='java' id='propertiesdefs' cache='true'> @include(wiki.SiDIFTemplates.defs) @// properties for a specific Topic @def property(Topic topic, Property property) { @{ String topicWithConcept=topic.pageid; if (topicWithConcept.startsWith("Konzept:")) { topicWithConcept=topicWithConcept.replace("Konzept:","Concept:"); } if (!topicWithConcept.startsWith("Concept:")) { topicWithConcept="Concept:"+topicWithConcept; } } @("{{")Property |name=@property.name |label=@property.label |documentation=@property.documentation |type=Special:Types/@property.type |index=@property.index |sortPos=@property.sortPos |primaryKey=@property.primaryKey |mandatory=@property.mandatory |namespace=@property.namespace |size=@property.size |uploadable=@property.uploadable |defaultValue=@property.defaultValue |inputType=@property.inputType |allowedValues=@property.allowedValues |values_from=@property.values_from |showInGrid=@property.showInGrid |isLink=@property.isLink |topic=@(topicWithConcept) |storemode=property @("}}") [[Has type::@property.type]] This is a Property with type @("{{#show: {{FULLPAGENAMEE}} | ?Property type#- }}") } @// properties for the given topic @def properties(Topic topic) { == properties of @(topic.name) == @for (Property property:topic.getProperties()) { === [[Property:@(topic.name) @(property.name)]] === <pre> @(property(topic,property)) </pre> } } </source> === properties === <source lang='java' id='properties' cache='true'> @include(wiki.SiDIFTemplates.propertiesdefs) @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @properties(contextSetting.getMaintopic()) </source> === instances === <source lang='java' id='instances' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @// here some java code is declared and executed @// the resulting variables can be used as template variables later @{ TripleQuery query=tripleStore.query(); TripleQuery topics=query.query(null,"isA","Topic"); String maintopic=wikiTask.getParams(); } @def wikison(TripleQuery query,String topicName, String name) { @("{{")@topicName @{ TripleQuery properties=query.query(name,null,null) } |name=@name @for (Triple property:properties.getTriples()) { |@property.getPredicate()=@property.getObject() } |storeMode=subobject @("}}") } @def wikison1toN(TripleQuery query,String topicName,String link,String linkTopicName) { @{TripleQuery instances=query.query(null,"isA",topicName) } @for (Triple instance:instances.getTriples()) { @wikison(query,topicName,instance.getSubject().toString()) @{TripleQuery linstances=query.query(null,link,instance.getSubject().toString()) } @for (Triple linstance:linstances.getTriples()) { @wikison(query,linkTopicName,linstance.getSubject().toString()) } } } @wikison1toN(query,maintopic,"answer","ZAnswer") [[Category:@maintopic]] </source> === form === <source lang='java' id='form' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the form for the given topic @def form(Topic topic) { <noinclude> This is the @("{{smartMediaWiki}}")-Form for "@topic.name". Create a new @topic.name by entering a new pagename for a @topic.name into the field below. If you enter an existing @topic.name pagename - you will edit the @topic.name with that pagename. @{ String multiple=""; if ("subobject".equals(topic.defaultstoremode)) { multiple="|multiple"; } } @("{{")#forminput:form=@topic.name|values from concept=@(topic.name)@("}}") </noinclude><includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> @formtemplate(topic,multiple) @("'''Freitext:'''") @("{{{standard input|free text|rows=10}}}") @("{{{standard input|summary}}}") @("{{{standard input|minor edit}}} {{{standard input|watch}}}") @("{{{standard input|save}}} {{{standard input|preview}}} {{{standard input|changes}}} {{{standard input|cancel}}}") </includeonly> }@// avoid newline @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @form(contextSetting.getMaintopic()) </source> === template === <source lang='java' id='template' cache='true'> @include(wiki.SiDIFTemplates.defs) @// show the given property Label @def String propertyLabel(Property property) { if ((property.label!=null) && (!"".equals(property.label.trim()))) {return property.label;} else {return property.name;} } @// show the given Property @def showProperty(Property property) { @{ String linkPre=""; String linkPost=""; String namespace=""; if ((property.type!=null) && (property.type.endsWith("Page"))) { linkPre="[[";linkPost="]]";} // do not do namespace handling at this time // use map namespace from mediawik-japi! // if (property.namespace!=null) { namespace=property.namespace+":";} }@{{#if:{{{@(property.name)|}}}|@(linkPre)@(namespace)@("{{{")@(property.name)@("|}}}")@(linkPost)|}} } @// set the given Property @def setProperty(Property property){ @(property.name)=@("{{{")@(property.name)|@("}}}") } @// sidif - newline relevant @def sidif(Topic topic) { @("{{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}}") isA @(topic.name)<br>@("|}}")@for (Property property:topic.propertiesByIndex()){@// avoid newline @("{{#if:{{{")?@(property.name)@("|}}}|")"@("{{{")?@(property.name)@("}}}")" is @property.name of it <br>|@("}}")} } @// includeonly part of wiki template @def includeonly(Topic topic, boolean withComment) { @("{{#switch:"){{{userparam|}}}|sidif=@sidif(topic) |#default=@("{{#switch:"){{{storemode|}}} |none= |subobject=@("{{#subobject:-") |isA=@(topic.name) @for (Property property:topic.propertiesByIndex()) { |@(topic.name) @setProperty(property) } @("}}")@//#subobject |#default=@("{{#set:") |isA=@(topic.name) @for (Property property:topic.propertiesByIndex()) { |@topic.name @setProperty(property) } @("}}")@//#set @("}}")@//#switch @("{{#switch:") {{{viewmode|}}} |masterdetail= @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @if (topicLink.targetTopic) { === @(topicLink.targetRole) === @("{{")#ask:[[Concept:@(topicLink.targetTopic.name)]][[@(topicLink.targetTopic.name) @(topicLink.sourceRole)::@("{{FULLPAGENAME}}")]] @for (Property property:topicLink.targetTopic.propertiesByIndex()) { | ?@(topicLink.targetTopic.name) @property.name = @property.name } @("}}") } } |tableheader=@("{{{!}}") class='wikitable' @{String delim="!";} @for (Property property:topic.propertiesByIndex()) {@(delim)@(property.name)@{delim="!!";}} @("\n{{!}}-") |tablerow= @{delim="{{!}}"} @for (Property property:topic.propertiesByIndex()) {@(delim){{{@(property.name)|}}}@{delim="{{!}}{{!}}"}} @("\n{{!}}-") |tablefooter=@("{{!}}}") |labelfield= @for (Property property:topic.propertiesByIndex()) {@(property.name)=@(showProperty(property))<br>} |#default=@("{{{!}}") class='wikitable' ! colspan='2' @("{{!}}")@(topic.name) @("{{!}}-") @("{{#switch:"){{{storemode|}}}|property= ! colspan='2' style='text-align:left' {{!}} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/@(topic.name)/{{FULLPAGENAME}}|title=edit}} @("{{!}}-") @("}}") @for (Property property:topic.propertiesByIndex()) {@("!")@(propertyLabel(property)) @("{{!}}")&nbsp;@(showProperty(property)) @("{{!}}")- } @("{{!}}}") @("}}")@//#switch @("}}")@//#switch @// do not add subobjects to category - this would make selecting the default form difficult @if ("property".equals(topic.defaultstoremode)) { [[Category:@topic.name]] } } @// wikiSonUsage @def wikiSonUsage(Topic topic,String modeLine) { <pre>@("{{")@topic.name @for (Property property:topic.propertiesByIndex()) { |@property.name= } |@modeLine @("}}") </pre> }@// avoid newline @// noinclude part of wiki template @def noinclude(Topic topic) { This is the template {{Link|target=Template:@topic.name|title=@topic.name}}. It belongs to the concept/topic {{Link|target=:Concept:@topic.name}}<br> You may find examples for the use of this template via the {{Link|target=List of @(topic.pluralName)}}. === Usage === @{ String[] storeModes={"subobject","property","none"};} @for (String storeMode:storeModes) { ==== storemode @storeMode ==== @wikiSonUsage(topic,"storemode="+storeMode) } @{ String[] viewModes={"tableheader","tablerow","tablefooter","labelfield"};} @for (String viewMode:viewModes) { ==== viewmode @viewMode ==== @wikiSonUsage(topic,"viewmode="+viewMode) } === Source (pretty printed) === @("<source") lang='html4strict'> @includeonly(topic,true) @("<")@("/source>") === Source === Click on "Edit" to edit the noinclude-part Source of this Template. [[Category:Template]] }@// avoid newline @def template(Topic maintopic) {<noinclude> @copyright() @noinclude(maintopic) </noinclude><includeonly>@includeonly(maintopic,false)</includeonly>}@// avoid newline @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @template(contextSetting.getMaintopic()) </source> === javacodegen === <source lang='java' id='javacodegen' cache='true'> @include(wiki.SiDIFTemplates.defs) === java code === @("<source lang='java' id='javacode'>") @verbatim() { @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } } @// user code section @// smartGenerator compatible like: @// // >>>{User defined import section}{::com::bitplan::ooa::OOAAssociation}{S37C96C0C016C} @def printUserCode(String codetype,String key,String modelID) { // >>>@("{")@(codetype)@("}")@("{")@(key)@("}")@("{")@(modelID)@("}") // <<<@("{")@(codetype)@("}")@("{")@(key)@("}")@("{")@(modelID)@("}") } @// first character to Upper @def String firstToUpper(String string) { StringBuffer sb = new StringBuffer(string); sb.replace(0, 1, string.substring(0, 1).toUpperCase()); return sb.toString(); } @// generate javacode for the given topic @def javacode(Context context) { @("@def static {") /** * Base class */ static abstract class TopicBase { // each Topic has a pageid - for non subobject thats the pagename public String pageid; /** * get a WikiSon version of the given name value * * @@param name * @@param value * @@return - the string representation */ public String toWikiSon(String name, String value) { String result = "<!-- " + name + " is null-->\n"; if (value != null) result = "|" + name + "=" + value + "\n"; return result; } /** * get the propertySidif of the given property * * @@param name * @@param value * @@return */ public static String propertySiDIF(String name, String value, String type) { // default is an empty string - no property line for emtpy values String result = ""; // if the value is not empty if ((value != null) && (!("".equals(value.trim())))) { // do we need to quote the result? String quote = ""; // this depends on the Type if ("Text".equals(type)) { quote = "\""; } // create a SIDIF Property line like // "John" is lastname of it result += quote + value + quote + " is " + name + " of it\n"; } // return the SiDIF property line return result; } /** * get me as a String * * @@param name * @@param value * @@return */ public static String propertySiDIF(String name, String value) { String result = propertySiDIF(name, value, "Text"); return result; } /** * check if the given boolean String value is true * * @@param value * @@return true if the value is not null and has true/TRUE as it's string * content */ public boolean isTrue(String value) { boolean result = false; if (value != null && value.toLowerCase().equals("true")) { result = true; } return result; } /** * initialize */ public void init(TripleQuery query) { } } // TopicBase @for(Topic topic:context.getTopics()) { /** * @topic.name * @topic.documentation */ public static class @topic.name extends TopicBase @("{") @for(Property property:topic.getProperties()) { public String @property.name; } @for(Property property:topic.getProperties()) { public String get@(firstToUpper(property.name))() { return @property.name; } public void set@(firstToUpper(property.name))(String p@(firstToUpper(property.name))) { @property.name=p@(firstToUpper(property.name)); } } /** * convert this @topic.name to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * convert this @topic.name to a WikiSon string */ public String toWikiSon() { String wikison= "{{@topic.name\n"; @for(Property property:topic.getProperties()) { wikison+=toWikiSon("@property.name",@property.name); } wikison+="}}\n"; return wikison; } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for @topic.name */ public @(topic.name)() {} /** * construct a @topic.name from the given Triple * @("@")param query - the TripleQuery to get the triples from * @("@")param p@(topic.name)Triple - the triple to construct me from */ public @(topic.name)(TripleQuery query,Triple p@(topic.name)Triple) @("{") this(query,p@(topic.name)Triple.getSubject().toString()); @("} // constructor") /** * construct a @topic.name from the given pageId * @("@")param query - the TripleQuery to get the triples from * @("@")param pageid - pageid */ public @(topic.name)(TripleQuery query,String pageid) @("{") this.pageid=pageid; @for(Property property:topic.getProperties()) { Triple @(property.name)Triple=query.selectSingle(pageid,"@property.name",null); if (@(property.name)Triple==null) @(property.name)Triple=query.selectSingle(pageid,"Property:@(topic.name)_@property.name",null); if (@(property.name)Triple!=null) @(property.name)=@(property.name)Triple.getObject().toString(); } init(query); @("}") // constructor for @topic.name @printUserCode("user defined topic code",topic.name,topic.name) @("}") // class @topic.name /** * Manager for @topic.name */ public static class @(topic.name)Manager extends TopicBase @("{") public String topicName="@(topic.name)"; public transient List<@topic.name> m@(topic.name)s=new ArrayList<@(topic.name)>(); public transient Map<String,@topic.name> m@(topic.name)Map=new LinkedHashMap<String,@(topic.name)>(); /** * get my @(topic.pluralName) */ public List<@topic.name> get@(topic.pluralName)() { List<@topic.name> result=this.m@(topic.name)s; return result; } /** * add a new @(topic.name) */ public @(topic.name) add(@(topic.name) p@(topic.name)) { m@(topic.name)s.add(p@(topic.name)); m@(topic.name)Map.put(p@(topic.name).getPageid(),p@(topic.name)); return p@(topic.name); } /** * add a new @(topic.name) from the given triple */ public @(topic.name) add(TripleQuery query,Triple p@(topic.name)Triple) { @topic.name l@topic.name=new @(topic.name)(query,p@(topic.name)Triple); add(l@(topic.name)); return l@(topic.name); } // reinitialize my m@(topic.name) map public void reinit() { m@(topic.name)Map.clear(); for (@(topic.name) l@(topic.name):m@(topic.name)s) { m@(topic.name)Map.put(l@(topic.name).getPageid(),l@(topic.name)); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static @(topic.name)Manager fromJson(String json) { @(topic.name)Manager result=JSON.parseObject(json, @(topic.name)Manager.class); result.reinit(); return result; } // default constructor for @(topic.name) Manager public @(topic.name)Manager() {} // add @(topic.pluralName) from the given query public void add@(topic.pluralName)(TripleQuery p@(topic.name)Query,TripleQuery query) { if (p@(topic.name)Query!=null) { for (Triple l@(topic.name)Triple:p@(topic.name)Query.getTriples()) { add(query,l@(topic.name)Triple); } } } // construct me from the given triple Query query public @(topic.name)Manager(TripleQuery query) @("{") // first query the SiDIF bases triplestore TripleQuery l@(topic.name)Query=query.query(null,"isA","@topic.name"); add@(topic.pluralName)(l@(topic.name)Query,query); // then the SMW triplestore l@(topic.name)Query=query.query(null,"Property:IsA","@topic.name"); add@(topic.pluralName)(l@(topic.name)Query,query); init(query); @("}") // constructor for @topic.name Manager @printUserCode("user defined topicmanager code",topic.name,topic.name) @("}") // class @topic.name Manager } @// end static @("}") } @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); Context context=ContextFactory.getInstance().getContext(contextSetting); } @javacode(context) </source> === help === <source lang='java' id='help'> @include(wiki.SiDIFTemplates.defs) @def help(Topic topic) { == Help for @(topic.name) == @topicheader(topic) === Documentation === @topic.wikiDocumentation === Example @(topic.pluralName) === {{#ask: [[Concept:@(topic.name)]] }} === Properties === {{#ask: [[Concept:Property]][[Property topic::Concept:@(topic.name)]] | ?Property documentation = documentation | ?Property type = type | ?Property name = name | ?Property label = label | ?Property allowedValues = allowedValues | ?Property mandatory = mandatory | ?Property uploadable = uploadable |format=table }} @uml("uml",topic) @seealso(topic) [[Category:@topic.name]] } @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @help(contextSetting.getMaintopic()) </source> === debug === <source lang='java' id='debug'> @include(wiki.SiDIFTemplates.java) @for (Topic topic:mTopicManager.mTopics) { == @(topic.pageid) == === Concept property === @if (topic.conceptProperty) { * @topic.conceptProperty.pageid name=@topic.conceptProperty.name } @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { === source TopicLink @(topicLink.name) === * @topicLink.sourceMultiple @topicLink.source @(topicLink.sourceRole) * @topicLink.targetMultiple @topicLink.target @(topicLink.targetRole) } @for (TopicLink topicLink:topic.targetTopicLinks.mTopicLinks) { === target TopicLink @(topicLink.name) === * @topicLink.sourceMultiple @topicLink.source @(topicLink.sourceRole) * @topicLink.targetMultiple @topicLink.target @(topicLink.targetRole) } @for (Property property:topic.getProperties()) { === Property @(property.name) === <pre> [[Has type::@property.type]] @("{{")Property |name=@property.name |documentation=@property.documentation |type=Special:Types/@property.type |label=@property.label |primaryKey=@property.primaryKey |mandatory=@property.mandatory |uploadable=@property.uploadable |size=@property.size |defaultValue=@property.defaultValue |inputType=@property.inputType |allowedValues=@property.allowedValues |topic=Concept:@topic.pageid @("}}") [[has default form::Property]] This is a Property with type @("{{#show: {{FULLPAGENAMEE}} | ?Property type#- }}") </pre> } } </source> === tripletable === <source lang='java' id='tripletable' cache='true'> @include(wiki.SiDIFTemplates.java) @// macro to show a table of triples @def tripletable(String title,List<org.sidif.triple.Triple> triples) { === @title === {| class="wikitable sortable" ! subject !! predicate !! object |- @for (org.sidif.triple.Triple triple:triples) { |@triple.getSubject() || @triple.getPredicate() || @triple.getObject() |- } |} } @tripletable("all triples",query.getTriples()) @tripletable("topics",topics.getTriples()) </source> === defs === <source lang='java' id='defs' cache='true'> @include(wiki.SiDIFTemplates.java) @// macro to show BITPlan copyright @def copyright() {<!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- -->@// avoid newline } @// error handling - get a stack trace @def String getStackTrace (Throwable t) { StringWriter sw = new StringWriter(); t.printStackTrace(new PrintWriter(sw)); return sw.toString(); } @// macro to to internationalize generator results @def String i18n(String text) { String targetLang=wikiTask.getWiki().getSiteInfo().getLang(); return text; } @// macro for the topic header of a topic @def topicheader(Topic topic) { {{#ask: [[Topic name::@(topic.name)]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} } @// macro for the form template of a topic @def formtemplate(Topic topic,String multiple) { <!-- @(topic.name) --> @("{{{")for template|@(topic.name)@(multiple)@("}}}") @("{|") class="wikitable" ! colspan='2'| @topic.name |- @for (Property property:topic.propertiesByIndex()) { ! @property.label: <!-- @property.type @property.name --> @{ String allowedValues=""; if (property.allowedValues!=null) { allowedValues="|values="+property.allowedValues; } String mandatory=""; if ("true".equals(property.mandatory)) { mandatory="|mandatory"; } String uploadable=""; if ("true".equals(property.uploadable)) { uploadable="|uploadable"; } String values_from=""; if (property.values_from!=null) { values_from="|values from "+property.values_from; } String defaultValue=""; if (property.defaultValue!=null) { defaultValue="|default="+property.defaultValue; } String size=""; if (property.size!=null) { size="|size="+property.size; } String inputtype=""; if (property.inputType!=null) { inputtype="|input type="+property.inputType; } if ("textarea".equals(property.inputType)) { inputtype+="|editor=wikieditor"; } } | @("{{{")field|@(property.name)|property=@(topic.name) @(property.name)@(inputtype)@(size)@(mandatory)@(uploadable)@(values_from)@(allowedValues)@(defaultValue)@("}}}") |- } @("|}") @("{{{")field|storemode|default=@(topic.defaultstoremode)|hidden@("}}}") @("{{{end template}}}") <!-- @(topic.name) --> } @// macro to to show relevant links for a topic @def seealso(Topic topic) { see also * [[List of @(topic.pluralName)]] * [[Help:@topic.name]] * [[Concept:@topic.name]] * [[:Category:@topic.name]] * [[:Template:@topic.name]] * [[:Form:@topic.name]] topic links: @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @if (topicLink.targetTopic) { * [[:Category:@(topicLink.targetTopic.name)]] } } } @// macro to create skin params for BITPlan corporate identity @def bitplanumlci(int fontSize) { ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager @{ String skinparams[] = {"note", "component", "package", "usecase","activity","classAttribute","interface","class","object"}; } @for (String skinparam:skinparams) { skinparam @skinparam { BackGroundColor #FFFFFF FontSize @fontSize ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } } hide Circle ' end of skinparams ' } @// macro to create Relation @def plantUmlRelation(TopicLink topicLink) { @{ String sourceMany="1"; String targetMany="1"; if ("true".equals(topicLink.sourceMultiple)) sourceMany="*"; if ("true".equals(topicLink.targetMultiple)) targetMany="*"; } @(topicLink.source) "@(topicLink.sourceRole) (@(sourceMany))" -- "@(topicLink.targetRole)(@(targetMany))" @(topicLink.target) } @// macro to create uml from simela triples @def uml(String title,Topic topic) { === @title === <uml> title @topic.name note as @(topic.name)DiagramNote Copyright (c) 2015 BITPlan GmbH [[http://www.bitplan.com]] end note note as @(topic.name)Note @(topic.documentation) end note class @topic.name @("{") @for (Property property:topic.propertiesByIndex()) { @(property.type) @(property.name) } @("}") @(topic.name)Note .. @(topic.name) @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @plantUmlRelation(topicLink) } @for (TopicLink topicLink:topic.targetTopicLinks.mTopicLinks) { @plantUmlRelation(topicLink) } @bitplanumlci(12) </uml> } </source> === dialogdefs === <source lang='java' id='dialogdefs' cache='true'> @import java.net.URLEncoder @// JQuery imports @def jquery(String indent) { @(indent)<!-- JQuery Code for resthtmlview --> @(indent)<script src="/resthtmlview/js/jquery-1.10.2.min.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery-ui-1.10.0.custom.js"></script> @(indent)<script src="/resthtmlview/js/i18n/grid.locale-en.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/ui.multiselect.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery.ui.message.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery.jqGrid.min.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/redactor.min.js" type="text/javascript"></script> @(indent)<!-- load jQuery and tablesorter scripts --> @(indent)<script src="/resthtmlview/js/jquery.tablesorter.min.js"></script> @(indent)<script src="/resthtmlview/js/jquery.tablesorter.widgets.js"></script> @(indent)<script src="/resthtmlview/js/jquery.metadata.js"></script> @(indent)<!-- JQuery Styles for resthtmlview --> @(indent)<link href="/resthtmlview/css/form.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/messages.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/bitplanfadetogrey/jquery-ui-1.10.1.custom.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/ui.jqgrid.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<link href="/resthtmlview/css/ui.multiselect.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<!-- Tablesorter: required --> @(indent)<link href="/resthtmlview/css/theme.blue.css" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/searchFilter.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<link href="/resthtmlview/css/redactor.css" type="text/css" media="screen" rel="stylesheet" /> } @// CSS Style definitions @def style(String indent) { @(indent)<style> @(indent) body { height:100% } @(indent) #container { @(indent) background-color: #f0f0f0; /* lightblue background */ @(indent) width: 100%; /* Container has full width */ @(indent) margin: auto; /* center container */ @(indent) min-height: 100%; /* minimum height 100 % (for modern browsers) */ @(indent) height: auto !important; /* important Behel (for modern browsers */ @(indent) height: 100%; /* IE shall work as specified */ @(indent) overflow: hidden !important; /* firefox scrollbar */ @(indent) } @(indent)</style> } @// dialog definition @def dialog(String indent) { @(indent)<script type="text/javascript"> @(indent) $(document).ready(function() { @(indent) var wWidth = $(window).width(); @(indent) var wHeight = $(window).height(); @(indent) var dTopy = wHeight * 0.25; // top at 25% of window height @(indent) var dTopx = wWidth * 0.25; // left at 25% of window width @(indent) var dWidth = 'auto'; //this will make the dialog 98% of the window size @(indent) var dHeight = 'auto'; @(indent) $( "#dialog" ).dialog({ @(indent) // position : [ dTopx, dTopy ], @(indent) width : dWidth, @(indent) height : dHeight, @(indent) modal : true, @(indent) // title: ""+wWidth+"x"+wHeight+" "+dTopx+":"+dTopy, @(indent) my: "center", @(indent) at: "center", @(indent) of: window, @(indent) show : { @(indent) effect : "blind", @(indent) duration : 500 @(indent) }, @(indent) hide : { @(indent) effect : "fade", @(indent) duration : 500 @(indent) } @(indent) }); @(indent) // tabs @(indent) $( "#tabs" ).tabs(); @(indent) // tablesorter @(indent) $.extend( $.tablesorter.defaults, { @(indent) theme: 'blue', @(indent) widthFixed: false @(indent) }); @(indent) $(".sortable").tablesorter(); @(indent) }); @(indent)</script> } @// display the given stockicon @def String stockicon(String name,int size,String alt,String title) { String iconhref="/stockicons/"+size+"x"+size+"/shadow/"+name+".png"; String img="<img src='"+iconhref+"' alt='"+alt+"' title='"+title+"' width='"+size+"px' height='"+size+"px' >"; return img; } @// url encode the given txt @def String urlEncode(String txt) { String result=URLEncoder.encode(txt, "UTF-8"); return result; } @def selectall() { <script> /** * http://stackoverflow.com/questions/432493/how-do-you-access-the-matched-groups-in-a-javascript-regular- * expression * examples: * * var matches = getRegexMatches(/(dog)/, "dog boat, cat car dog"); * console.log(matches); * * var matches = getRegexMatches(/(dog|cat) (boat|car)/, "dog boat, cat car"); * console.log(matches); */ function getRegexMatches(regex, string) { if(!(regex instanceof RegExp)) { return "ERROR"; } else { if (!regex.global) { // If global flag not set, create new one. var flags = "g"; if (regex.ignoreCase) flags += "i"; if (regex.multiline) flags += "m"; if (regex.sticky) flags += "y"; regex = RegExp(regex.source, flags); } } var matches = []; var match = regex.exec(string); while (match) { if (match.length > 2) { var group_matches = []; for (var i = 1; i < match.length; i++) { group_matches.push(match[i]); } matches.push(group_matches); } else { matches.push(match[1]); } match = regex.exec(string); } return matches; } /** * get the select_row or select_col checkboxes dependening on the selectType row/col */ function getSelectCheckboxes(selectType) { var regex=new RegExp("select_"+selectType+"_"); var result= $('input').filter(function() {return this.id.match(regex);}); return result; } /** * matrix selection logic * the goal is to provide select all / select row x / select col x * checkboxes that will allow to * select all: select all grid elements * select row: select the grid elements in the given row * select col: select the grid elements in the given col * * There is a naming convention for the ids and css style classes of the the selectors and elements: * select all -> id: selectall * select row -> id: select_row_row e.g. select_row_2 * select col -> id: select_col_col e.g. select_col_3 * grid element -> class checkBoxClass col_col row_row e.g. checkBoxClass row_2 col_3 */ function checkSelectStates() { // get the list of grid checkbox elements // all checkboxes var all = $('.checkBoxClass'); // all select row check boxes var rows = getSelectCheckboxes('row'); // all select columnn check boxes var cols = getSelectCheckboxes('col'); // console.log("rows: "+rows.length+", cols:"+cols.length+" total: "+all.length); // get the total number of checkboxes in the grid var allLen=all.length; // get the number of checkboxes in the checked state var filterLen=all.filter(':checked').length; // console.log(allLen+"-"+filterLen); // if all checkboxes are in the checked state // set the state of the selectAll checkbox to checked to be able // to deselect all at once, otherwise set it to unchecked to be able to select all at once if (allLen == filterLen) { $("#selectall").prop("checked", true); } else { $("#selectall").prop("checked", false); } // now check the completeness of the rows for (row = 0; row < rows.length; row++) { var rowall=$('.row_'+row); var rowchecked=rowall.filter(':checked'); if (rowall.length == rowchecked.length) { $("#select_row_"+row).prop("checked", true); } else { $("#select_row_"+row).prop("checked", false); } } // now check the completeness of the cols for (col = 0; col < cols.length; col++) { var colall=$('.col_'+col); var colchecked=colall.filter(':checked'); if (colall.length == colchecked.length) { $("#select_col_"+col).prop("checked", true); } else { $("#select_col_"+col).prop("checked", false); } } } $(document).ready(function () { // handle click event for Select all check box $("#selectall").click(function () { // set the checked property of all grid elements to be the same as // the state of the SelectAll check box var state=$("#selectall").prop('checked'); $(".checkBoxClass").prop('checked', state); getSelectCheckboxes('row').prop('checked', state); getSelectCheckboxes('col').prop('checked', state); }); // handle clicks within the grid $(".checkBoxClass").on( "click", function() { checkSelectStates(); }); $('.checkboxSelect').on( "click", function() { var matchRowColArr=getRegexMatches(/select_(row|col)_([0-9]+)/,this.id); var matchRowCol=matchRowColArr[0]; // console.log(matchRowCol); if (matchRowCol.length==2) { var selectType=matchRowCol[0]; // e.g. row var selectIndex=matchRowCol[1]; // e.g. 2 // console.log(this.id+" clicked to select "+selectType+" "+selectIndex); // e.g. .row_2 $("."+selectType+"_"+selectIndex) .prop('checked', $("#select_"+selectType+"_"+selectIndex).prop('checked')); checkSelectStates(); } }); }); </script> } </source> === java === The debugging version of the SiDIF Templates <source lang='java' id='java' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.TripleStore @import org.sidif.triple.Triple @import org.sidif.wiki.SMW_Triples @import com.alibaba.fastjson.JSON @// import instead of src @import com.bitplan.topic.TopicStatic.YT @import com.bitplan.topic.TopicStatic.Context @import com.bitplan.topic.TopicStatic.Topic @import com.bitplan.topic.TopicStatic.Property @import com.bitplan.topic.TopicStatic.SMW_Type @import com.bitplan.topic.TopicStatic.TopicLink @import com.bitplan.topic.TopicStatic.ContextManager @import com.bitplan.topic.TopicStatic.TopicManager @import com.bitplan.topic.TopicStatic.PropertyManager @import com.bitplan.topic.TopicStatic.SMW_TypeManager @import com.bitplan.topic.TopicStatic.TopicLinkManager @import com.bitplan.topic.ContextFactory @import com.bitplan.topic.ContextSetting @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } </source> === javasrc === <source lang='java' id='javasrc' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.TripleStore @import org.sidif.triple.Triple @import org.sidif.wiki.SMW_Triples @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore com.bitplan.topic.TopicManager topicManager } @def static { /** * Base class */ static abstract class TopicBase { /** * initialize */ public void init(TripleQuery query) { } } // TopicBase /** * technical part of Y-Principle * * @author wf * */ static class YT { // Y-Principle technical parts public static YT yts[] = { new YT("Category", "Category", "category", "/images/d/d6/Category_Icon.png"), new YT("Concept", "Concept", "concept", "/images/2/25/Concept_Icon.png"), new YT("Form", "Form", "form", "/images/e/e5/Form_icon.jpg"), new YT("Help", "Help", "help", "/images/7/7a/Help_Icon.png"), new YT("Listof", "List of", "listof", "/images/7/7f/List_Icon.png"), new YT("Template", "Template", "template", "/images/6/61/Icon_template.png"), new YT("Properties", "Properties", "properties", "/images/6/6a/Element_into_input.png"), new YT("Java", "Java", "javacodegen", "/images/3/38/Java_icon.png") }; /** * get the YT with the given name * * @param ytname */ public static YT getYT(String ytname) { for (YT yt : yts) { if (yt.name.equals(ytname)) { return yt; } } return null; } String name; String label; String iconUrl; String template; /** * construct me with name label and icon url * * @param name * @param label * @param iconUrl */ public YT(String name, String label,String template, String iconUrl) { super(); this.name = name; this.label = label; this.template=template; this.iconUrl = iconUrl; } /** * a part where name and label is different * * @param name * @param label */ public YT(String name, String label) { this(name,label,name.toLowerCase(),"Datei:"+name+".png"); } /** * a part where name and label is the same * * @param name */ public YT(String name) { this(name, name); } /** * get the page Title for the given topic name * * @param topicname * @return */ public String getPageTitle(Topic topic) { String result = this.name + ":" + topic.name; if ("Listof".equals(name)) { result = "List_of_" + topic.pluralName.replace(" ","_"); } if ("Properties".equals(name)) { result = "Concept:" + topic.name.replace(" ","_")+"/Properties"; } return result; } } /** * Context A Context groups some topics like a Namespace/Package */ static class Context extends TopicBase { String pageid; String name; public String getName() { return name; } public void setName(String pName) { name = pName; } /** * convert this Context to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Context */ public Context() { } /** * construct a Context from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pContextTriple * - the triple to construct me from */ public Context(TripleQuery query, Triple pContextTriple) { this(query, pContextTriple.getSubject().toString()); } // constructor /** * construct a Context from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Context(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Context_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); init(query); } // constructor for Context // >>>{user defined topic code}{Context}{Context} /** * get the propertySidif of the given property * @param name * @param value * @return */ public String propertySiDIF(String name,String value, String type) { String result=""; String quote=""; if ("Text".equals(type)) { quote="\""; } if (value!=null) { result+=quote+value+quote+" is "+name+" of it\n"; } return result; } /** * get me as a String * @param name * @param value * @return */ public String propertySiDIF(String name,String value) { String result=propertySiDIF(name,value,"Text"); return result; } /** * return me as a SiDIF string * @return */ public String asSiDIF() { String result=""; result+="#\n"; result+="# Context:"+getName()+"\n"; result+="#\n"; result+=getPageid()+" isA Context\n"; result+=this.propertySiDIF("name", name); for (Topic topic:this.getTopics()) { result+="#\n"; result+="#"+topic.getName()+"\n"; result+="#\n"; result+=topic.name+" isA Topic\n"; result+=this.propertySiDIF("name", topic.name); result+=this.propertySiDIF("pluralName", topic.pluralName); result+=this.propertySiDIF("documentation",topic.documentation); result+=this.propertySiDIF("wikiDocumentation",topic.wikiDocumentation); result+=this.propertySiDIF("icon",topic.icon); result+=this.propertySiDIF("defaultstoremode", topic.defaultstoremode); result+=this.propertySiDIF("context", this.getName()); for (Property property:topic.getProperties()) { result+=topic.getName()+"_"+property.getName()+" addsTo it\n"; } for (Property property:topic.getProperties()) { result+=topic.getName()+"_"+property.getName()+" isA Property\n"; result+=propertySiDIF("name",property.name); result+=propertySiDIF("allowedValues",property.allowedValues); result+=propertySiDIF("defaultValue",property.defaultValue); result+=propertySiDIF("documentation",property.documentation); result+=propertySiDIF("inputType",property.inputType); result+=propertySiDIF("label",property.label); result+=propertySiDIF("mandatory", property.mandatory,"Boolean"); result+=propertySiDIF("namespace",property.namespace); result+=propertySiDIF("primaryKey",property.primaryKey,"Boolean"); result+=propertySiDIF("pageid",property.pageid); result+=propertySiDIF("size",property.size,"Number"); result+=propertySiDIF("topic",topic.getName()); } } return result; } // 1:n relation to topics TopicManager topics = new TopicManager(); /** * accessor for 1:n relation to topics * * @return */ public List<Topic> getTopics() { return topics.mTopics; } /** * recreate topics from a given list * @param pTopics */ public void setTopics(List<Topic> pTopics) { topics = new TopicManager(); topics.mTopics=pTopics; for (Topic topic:pTopics) { topics.mTopicMap.put(topic.getPageid(), topic); } } // <<<{user defined topic code}{Context}{Context} } // class Context /** * Manager for Context */ static class ContextManager extends TopicBase { public String topicName = "Context"; public List<Context> mContexts = new ArrayList<Context>(); public Map<String, Context> mContextMap = new LinkedHashMap<String, Context>(); /** * add a new Context */ public Context add(Context pContext) { mContexts.add(pContext); mContextMap.put(pContext.getPageid(), pContext); return pContext; } /** * add a new Context from the given triple */ public Context add(TripleQuery query, Triple pContextTriple) { Context lContext = new Context(query, pContextTriple); add(lContext); return lContext; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public ContextManager() { } // construct me from the given triple Query query public ContextManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lContextQuery = query.query(null, "isA", "Context"); for (Triple lContextTriple : lContextQuery.getTriples()) { add(query, lContextTriple); } // then the SMW triplestore lContextQuery = query.query(null, "Property:IsA", "Context"); for (Triple lContextTriple : lContextQuery.getTriples()) { add(query, lContextTriple); } init(query); } // constructor for Context Manager // >>>{user defined topicmanager code}{Context}{Context} public TopicManager mTopicManager; public PropertyManager mPropertyManager; /** * run pass 2 to link topics to context * * @return */ public List<String> pass2() { List<String> result = new ArrayList<String>(); for (Topic topic : mTopicManager.mTopics) { if (topic.context != null) { Context context = this.mContextMap.get(topic.context); if (context != null) { context.topics.mTopics.add(topic); } else { result.add("Context '" + topic.context + "' not found"); } } } for (Property property : mPropertyManager.mPropertys) { if (property.topic != null) { Topic topic = mTopicManager.mTopicMap.get(property.topic); if (topic != null) { // FIXME use an add function that also adds to the map topic.properties.mPropertys.add(property); } else { result.add("Topic '" + property.topic + "' not found"); } } } return result; } /** * construct me from a tripleStore * * @param tripleStore */ public ContextManager(TripleStore tripleStore) { this(tripleStore.query()); mTopicManager = new TopicManager(tripleStore.query()); mPropertyManager = new PropertyManager(tripleStore.query()); mTopicManager.configureTopics(); pass2(); } // <<<{user defined topicmanager code}{Context}{Context} } // class Context Manager /** * Topic A Topic is a Concept/Class/Thing/Entity */ static class Topic extends TopicBase { String pageid; String name; String pluralName; String icon; String wikiDocumentation; String documentation; String defaultstoremode; String context; public String getName() { return name; } public void setName(String pName) { name = pName; } public String getPluralName() { return pluralName; } public void setPluralName(String pPluralName) { pluralName = pPluralName; } public String getIcon() { return icon; } public void setIcon(String pIcon) { icon = pIcon; } public String getWikiDocumentation() { return wikiDocumentation; } public void setWikiDocumentation(String pWikiDocumentation) { wikiDocumentation = pWikiDocumentation; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getDefaultstoremode() { return defaultstoremode; } public void setDefaultstoremode(String pDefaultstoremode) { defaultstoremode = pDefaultstoremode; } public String getContext() { return context; } public void setContext(String pContext) { context = pContext; } /** * convert this Topic to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Topic */ public Topic() { } /** * construct a Topic from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pTopicTriple * - the triple to construct me from */ public Topic(TripleQuery query, Triple pTopicTriple) { this(query, pTopicTriple.getSubject().toString()); } // constructor /** * construct a Topic from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Topic(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Topic_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple pluralNameTriple = query.selectSingle(pageid, "pluralName", null); if (pluralNameTriple == null) pluralNameTriple = query.selectSingle(pageid, "Property:Topic_pluralName", null); if (pluralNameTriple != null) pluralName = pluralNameTriple.getObject().toString(); Triple iconTriple = query.selectSingle(pageid, "icon", null); if (iconTriple == null) iconTriple = query.selectSingle(pageid, "Property:Topic_icon", null); if (iconTriple != null) icon = iconTriple.getObject().toString(); Triple wikiDocumentationTriple = query.selectSingle(pageid, "wikiDocumentation", null); if (wikiDocumentationTriple == null) wikiDocumentationTriple = query.selectSingle(pageid, "Property:Topic_wikiDocumentation", null); if (wikiDocumentationTriple != null) wikiDocumentation = wikiDocumentationTriple.getObject().toString(); Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:Topic_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple defaultstoremodeTriple = query.selectSingle(pageid, "defaultstoremode", null); if (defaultstoremodeTriple == null) defaultstoremodeTriple = query.selectSingle(pageid, "Property:Topic_defaultstoremode", null); if (defaultstoremodeTriple != null) defaultstoremode = defaultstoremodeTriple.getObject().toString(); Triple contextTriple = query.selectSingle(pageid, "context", null); if (contextTriple == null) contextTriple = query.selectSingle(pageid, "Property:Topic_context", null); if (contextTriple != null) context = contextTriple.getObject().toString(); init(query); } // constructor for Topic // >>>{user defined topic code}{Topic}{Topic} PropertyManager properties = new PropertyManager(); TopicLinkManager sourceTopicLinks = new TopicLinkManager(); TopicLinkManager targetTopicLinks = new TopicLinkManager(); Property conceptProperty; // the Property to be used when selecting a // Concept /** * get the Properties * * @return */ public List<Property> getProperties() { return properties.mPropertys; } /** * initialize me with the given query * * @Override */ public void init(TripleQuery query) { TripleQuery propertyQuery = query.query(null, "addsTo", pageid); if (propertyQuery != null) { for (Triple property : propertyQuery.getTriples()) { properties.add(query, property); } } addTopicLinks(query, sourceTopicLinks, "source"); addTopicLinks(query, targetTopicLinks, "target"); if (name == null) { name = pageid; } if (pluralName == null) { pluralName = name + "s"; } // add Properties for targetTopicLinks // this is the referenced to the "neighbour" Topic for (TopicLink topicLink : targetTopicLinks.mTopicLinks) { Property property = new Property(); property.pageid = topicLink.sourceRole; property.name = property.pageid; property.label = property.name; property.type = "Page"; // make sure the form shows the neighbour concept as an option String sourceName = topicLink.source; // remove "Concept:" prefix !!! FIXME - this is language dependent // and a horrible work around for the time being sourceName = sourceName.replace("Concept:", ""); sourceName = sourceName.replace("Konzept:", ""); property.values_from = "concept=" + sourceName; property.inputType = "dropdown"; properties.mPropertys.add(property); } } /** * add the topicLinks * * @param query * - the TripleQuery to get the triples from * @param tm * - the TopicLinkManager to add the topic links to * @param predicate * - the predicate to be used for linking */ public void addTopicLinks(TripleQuery query, TopicLinkManager tm, String predicate) { TripleQuery linkQuery = query.query(null, predicate, pageid); if (linkQuery != null) { for (Triple linkTriple : linkQuery.getTriples()) { String link = linkTriple.getSubject().toString(); TopicLink topiclink = new TopicLink(query, link); tm.mTopicLinks.add(topiclink); } } } /** * check my source TopicLinks and set the targetTopic by looking it up */ public void linkTargetTopics(TopicManager tm) { for (TopicLink sourceTopicLink : sourceTopicLinks.mTopicLinks) { String topicTarget = sourceTopicLink.target; // e.g. Concept:Property; topicTarget = topicTarget.replace("Concept:", ""); // remove Concept // part topicTarget = topicTarget.replace("Koncept:", ""); // remove Concept // part Topic targetTopic = tm.byName(topicTarget); if (targetTopic != null) { sourceTopicLink.targetTopic = targetTopic; } } } /** * set the concept Property for the given target Property */ public void setConceptProperty() { for (Property property : properties.mPropertys) { if ("true".equals(property.mandatory) || "true".equals(property.primaryKey)) { conceptProperty = property; break; } } } // <<<{user defined topic code}{Topic}{Topic} } // class Topic /** * Manager for Topic */ static class TopicManager extends TopicBase { public String topicName = "Topic"; public List<Topic> mTopics = new ArrayList<Topic>(); public Map<String, Topic> mTopicMap = new LinkedHashMap<String, Topic>(); /** * add a new Topic */ public Topic add(Topic pTopic) { mTopics.add(pTopic); mTopicMap.put(pTopic.getPageid(), pTopic); return pTopic; } /** * add a new Topic from the given triple */ public Topic add(TripleQuery query, Triple pTopicTriple) { Topic lTopic = new Topic(query, pTopicTriple); add(lTopic); return lTopic; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public TopicManager() { } // construct me from the given triple Query query public TopicManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicQuery = query.query(null, "isA", "Topic"); for (Triple lTopicTriple : lTopicQuery.getTriples()) { add(query, lTopicTriple); } // then the SMW triplestore lTopicQuery = query.query(null, "Property:IsA", "Topic"); for (Triple lTopicTriple : lTopicQuery.getTriples()) { add(query, lTopicTriple); } init(query); } // constructor for Topic Manager // >>>{user defined topicmanager code}{Topic}{Topic} /** * get a topic by the given name * * @param topicName * - the name of the topic to get FIXME - speedup? */ public Topic byName(String topicName) { Topic result = null; for (Topic topic : mTopics) { if (topicName.equals(topic.name)) { result = topic; } } return result; } // byName /** * configure Topics: link TargetTopics set Concept Properties */ public void configureTopics() { for (Topic topic : mTopics) { topic.setConceptProperty(); topic.linkTargetTopics(this); } } // <<<{user defined topicmanager code}{Topic}{Topic} } // class Topic Manager /** * SMW_Type an SMW_Type is a data type which determines the possible values * for that type e.g. a Boolean can hold true/fals values while a Number can * hold 3.1459 or 20. A Page can hold the name of a Wiki page see * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes */ static class SMW_Type extends TopicBase { String pageid; String documentation; String type; String typepage; String helppage; String javaType; public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getType() { return type; } public void setType(String pType) { type = pType; } public String getTypepage() { return typepage; } public void setTypepage(String pTypepage) { typepage = pTypepage; } public String getHelppage() { return helppage; } public void setHelppage(String pHelppage) { helppage = pHelppage; } public String getJavaType() { return javaType; } public void setJavaType(String pJavaType) { javaType = pJavaType; } /** * convert this SMW_Type to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for SMW_Type */ public SMW_Type() { } /** * construct a SMW_Type from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pSMW_TypeTriple * - the triple to construct me from */ public SMW_Type(TripleQuery query, Triple pSMW_TypeTriple) { this(query, pSMW_TypeTriple.getSubject().toString()); } // constructor /** * construct a SMW_Type from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public SMW_Type(TripleQuery query, String pageid) { this.pageid = pageid; Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:SMW_Type_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple typeTriple = query.selectSingle(pageid, "type", null); if (typeTriple == null) typeTriple = query.selectSingle(pageid, "Property:SMW_Type_type", null); if (typeTriple != null) type = typeTriple.getObject().toString(); Triple typepageTriple = query.selectSingle(pageid, "typepage", null); if (typepageTriple == null) typepageTriple = query.selectSingle(pageid, "Property:SMW_Type_typepage", null); if (typepageTriple != null) typepage = typepageTriple.getObject().toString(); Triple helppageTriple = query.selectSingle(pageid, "helppage", null); if (helppageTriple == null) helppageTriple = query.selectSingle(pageid, "Property:SMW_Type_helppage", null); if (helppageTriple != null) helppage = helppageTriple.getObject().toString(); Triple javaTypeTriple = query.selectSingle(pageid, "javaType", null); if (javaTypeTriple == null) javaTypeTriple = query.selectSingle(pageid, "Property:SMW_Type_javaType", null); if (javaTypeTriple != null) javaType = javaTypeTriple.getObject().toString(); init(query); } // constructor for SMW_Type // >>>{user defined topic code}{SMW_Type}{SMW_Type} // <<<{user defined topic code}{SMW_Type}{SMW_Type} } // class SMW_Type /** * Manager for SMW_Type */ static class SMW_TypeManager extends TopicBase { public String topicName = "SMW_Type"; public List<SMW_Type> mSMW_Types = new ArrayList<SMW_Type>(); public Map<String, SMW_Type> mSMW_TypeMap = new LinkedHashMap<String, SMW_Type>(); /** * add a new SMW_Type */ public SMW_Type add(SMW_Type pSMW_Type) { mSMW_Types.add(pSMW_Type); mSMW_TypeMap.put(pSMW_Type.getPageid(), pSMW_Type); return pSMW_Type; } /** * add a new SMW_Type from the given triple */ public SMW_Type add(TripleQuery query, Triple pSMW_TypeTriple) { SMW_Type lSMW_Type = new SMW_Type(query, pSMW_TypeTriple); add(lSMW_Type); return lSMW_Type; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public SMW_TypeManager() { } // construct me from the given triple Query query public SMW_TypeManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lSMW_TypeQuery = query.query(null, "isA", "SMW_Type"); for (Triple lSMW_TypeTriple : lSMW_TypeQuery.getTriples()) { add(query, lSMW_TypeTriple); } // then the SMW triplestore lSMW_TypeQuery = query.query(null, "Property:IsA", "SMW_Type"); for (Triple lSMW_TypeTriple : lSMW_TypeQuery.getTriples()) { add(query, lSMW_TypeTriple); } init(query); } // constructor for SMW_Type Manager // >>>{user defined topicmanager code}{SMW_Type}{SMW_Type} // <<<{user defined topicmanager code}{SMW_Type}{SMW_Type} } // class SMW_Type Manager /** * Property a Property is a Feature/Attribute */ static class Property extends TopicBase { String pageid; String documentation; String name; String type; String label; String primaryKey; String mandatory; String uploadable; String size; String defaultValue; String inputType; String namespace; String values_from; String allowedValues; String topic; public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getName() { return name; } public void setName(String pName) { name = pName; } public String getType() { return type; } public void setType(String pType) { type = pType; } public String getLabel() { return label; } public void setLabel(String pLabel) { label = pLabel; } public String getPrimaryKey() { return primaryKey; } public void setPrimaryKey(String pPrimaryKey) { primaryKey = pPrimaryKey; } public String getMandatory() { return mandatory; } public void setMandatory(String pMandatory) { mandatory = pMandatory; } public String getUploadable() { return uploadable; } public void setUploadable(String pUploadable) { uploadable = pUploadable; } public String getSize() { return size; } public void setSize(String pSize) { size = pSize; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String pDefaultValue) { defaultValue = pDefaultValue; } public String getInputType() { return inputType; } public void setInputType(String pInputType) { inputType = pInputType; } public String getNamespace() { return namespace; } public void setNamespace(String pNamespace) { namespace = pNamespace; } public String getValues_from() { return values_from; } public void setValues_from(String pValues_from) { values_from = pValues_from; } public String getAllowedValues() { return allowedValues; } public void setAllowedValues(String pAllowedValues) { allowedValues = pAllowedValues; } public String getTopic() { return topic; } public void setTopic(String pTopic) { topic = pTopic; } /** * convert this Property to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Property */ public Property() { } /** * construct a Property from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pPropertyTriple * - the triple to construct me from */ public Property(TripleQuery query, Triple pPropertyTriple) { this(query, pPropertyTriple.getSubject().toString()); } // constructor /** * construct a Property from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Property(TripleQuery query, String pageid) { this.pageid = pageid; Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:Property_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Property_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple typeTriple = query.selectSingle(pageid, "type", null); if (typeTriple == null) typeTriple = query.selectSingle(pageid, "Property:Property_type", null); if (typeTriple != null) type = typeTriple.getObject().toString(); Triple labelTriple = query.selectSingle(pageid, "label", null); if (labelTriple == null) labelTriple = query.selectSingle(pageid, "Property:Property_label", null); if (labelTriple != null) label = labelTriple.getObject().toString(); Triple primaryKeyTriple = query.selectSingle(pageid, "primaryKey", null); if (primaryKeyTriple == null) primaryKeyTriple = query.selectSingle(pageid, "Property:Property_primaryKey", null); if (primaryKeyTriple != null) primaryKey = primaryKeyTriple.getObject().toString(); Triple mandatoryTriple = query.selectSingle(pageid, "mandatory", null); if (mandatoryTriple == null) mandatoryTriple = query.selectSingle(pageid, "Property:Property_mandatory", null); if (mandatoryTriple != null) mandatory = mandatoryTriple.getObject().toString(); Triple uploadableTriple = query.selectSingle(pageid, "uploadable", null); if (uploadableTriple == null) uploadableTriple = query.selectSingle(pageid, "Property:Property_uploadable", null); if (uploadableTriple != null) uploadable = uploadableTriple.getObject().toString(); Triple sizeTriple = query.selectSingle(pageid, "size", null); if (sizeTriple == null) sizeTriple = query.selectSingle(pageid, "Property:Property_size", null); if (sizeTriple != null) size = sizeTriple.getObject().toString(); Triple defaultValueTriple = query.selectSingle(pageid, "defaultValue", null); if (defaultValueTriple == null) defaultValueTriple = query.selectSingle(pageid, "Property:Property_defaultValue", null); if (defaultValueTriple != null) defaultValue = defaultValueTriple.getObject().toString(); Triple inputTypeTriple = query.selectSingle(pageid, "inputType", null); if (inputTypeTriple == null) inputTypeTriple = query.selectSingle(pageid, "Property:Property_inputType", null); if (inputTypeTriple != null) inputType = inputTypeTriple.getObject().toString(); Triple namespaceTriple = query.selectSingle(pageid, "namespace", null); if (namespaceTriple == null) namespaceTriple = query.selectSingle(pageid, "Property:Property_namespace", null); if (namespaceTriple != null) namespace = namespaceTriple.getObject().toString(); Triple values_fromTriple = query .selectSingle(pageid, "values_from", null); if (values_fromTriple == null) values_fromTriple = query.selectSingle(pageid, "Property:Property_values_from", null); if (values_fromTriple != null) values_from = values_fromTriple.getObject().toString(); Triple allowedValuesTriple = query.selectSingle(pageid, "allowedValues", null); if (allowedValuesTriple == null) allowedValuesTriple = query.selectSingle(pageid, "Property:Property_allowedValues", null); if (allowedValuesTriple != null) allowedValues = allowedValuesTriple.getObject().toString(); Triple topicTriple = query.selectSingle(pageid, "topic", null); if (topicTriple == null) topicTriple = query.selectSingle(pageid, "Property:Property_topic", null); if (topicTriple != null) topic = topicTriple.getObject().toString(); init(query); } // constructor for Property // >>>{user defined topic code}{Property}{Property} @Override public void init(TripleQuery query) { if (name == null) { name = pageid; } if (label == null) { label = name; } if (type == null) { type = "Text"; } } // <<<{user defined topic code}{Property}{Property} } // class Property /** * Manager for Property */ static class PropertyManager extends TopicBase { public String topicName = "Property"; public List<Property> mPropertys = new ArrayList<Property>(); public Map<String, Property> mPropertyMap = new LinkedHashMap<String, Property>(); /** * add a new Property */ public Property add(Property pProperty) { mPropertys.add(pProperty); mPropertyMap.put(pProperty.getPageid(), pProperty); return pProperty; } /** * add a new Property from the given triple */ public Property add(TripleQuery query, Triple pPropertyTriple) { Property lProperty = new Property(query, pPropertyTriple); add(lProperty); return lProperty; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public PropertyManager() { } // construct me from the given triple Query query public PropertyManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lPropertyQuery = query.query(null, "isA", "Property"); for (Triple lPropertyTriple : lPropertyQuery.getTriples()) { add(query, lPropertyTriple); } // then the SMW triplestore lPropertyQuery = query.query(null, "Property:IsA", "Property"); for (Triple lPropertyTriple : lPropertyQuery.getTriples()) { add(query, lPropertyTriple); } init(query); } // constructor for Property Manager // >>>{user defined topicmanager code}{Property}{Property} // <<<{user defined topicmanager code}{Property}{Property} } // class Property Manager /** * TopicLink * */ static class TopicLink extends TopicBase { String pageid; String name; String sourceRole; String sourceMultiple; String source; String sourceDocumentation; String targetRole; String targetMultiple; String target; String masterDetail; String targetDocumentation; public String getName() { return name; } public void setName(String pName) { name = pName; } public String getSourceRole() { return sourceRole; } public void setSourceRole(String pSourceRole) { sourceRole = pSourceRole; } public String getSourceMultiple() { return sourceMultiple; } public void setSourceMultiple(String pSourceMultiple) { sourceMultiple = pSourceMultiple; } public String getSource() { return source; } public void setSource(String pSource) { source = pSource; } public String getSourceDocumentation() { return sourceDocumentation; } public void setSourceDocumentation(String pSourceDocumentation) { sourceDocumentation = pSourceDocumentation; } public String getTargetRole() { return targetRole; } public void setTargetRole(String pTargetRole) { targetRole = pTargetRole; } public String getTargetMultiple() { return targetMultiple; } public void setTargetMultiple(String pTargetMultiple) { targetMultiple = pTargetMultiple; } public String getTarget() { return target; } public void setTarget(String pTarget) { target = pTarget; } public String getMasterDetail() { return masterDetail; } public void setMasterDetail(String pMasterDetail) { masterDetail = pMasterDetail; } public String getTargetDocumentation() { return targetDocumentation; } public void setTargetDocumentation(String pTargetDocumentation) { targetDocumentation = pTargetDocumentation; } /** * convert this TopicLink to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for TopicLink */ public TopicLink() { } /** * construct a TopicLink from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pTopicLinkTriple * - the triple to construct me from */ public TopicLink(TripleQuery query, Triple pTopicLinkTriple) { this(query, pTopicLinkTriple.getSubject().toString()); } // constructor /** * construct a TopicLink from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public TopicLink(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query .selectSingle(pageid, "Property:TopicLink_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple sourceRoleTriple = query.selectSingle(pageid, "sourceRole", null); if (sourceRoleTriple == null) sourceRoleTriple = query.selectSingle(pageid, "Property:TopicLink_sourceRole", null); if (sourceRoleTriple != null) sourceRole = sourceRoleTriple.getObject().toString(); Triple sourceMultipleTriple = query.selectSingle(pageid, "sourceMultiple", null); if (sourceMultipleTriple == null) sourceMultipleTriple = query.selectSingle(pageid, "Property:TopicLink_sourceMultiple", null); if (sourceMultipleTriple != null) sourceMultiple = sourceMultipleTriple.getObject().toString(); Triple sourceTriple = query.selectSingle(pageid, "source", null); if (sourceTriple == null) sourceTriple = query.selectSingle(pageid, "Property:TopicLink_source", null); if (sourceTriple != null) source = sourceTriple.getObject().toString(); Triple sourceDocumentationTriple = query.selectSingle(pageid, "sourceDocumentation", null); if (sourceDocumentationTriple == null) sourceDocumentationTriple = query.selectSingle(pageid, "Property:TopicLink_sourceDocumentation", null); if (sourceDocumentationTriple != null) sourceDocumentation = sourceDocumentationTriple.getObject().toString(); Triple targetRoleTriple = query.selectSingle(pageid, "targetRole", null); if (targetRoleTriple == null) targetRoleTriple = query.selectSingle(pageid, "Property:TopicLink_targetRole", null); if (targetRoleTriple != null) targetRole = targetRoleTriple.getObject().toString(); Triple targetMultipleTriple = query.selectSingle(pageid, "targetMultiple", null); if (targetMultipleTriple == null) targetMultipleTriple = query.selectSingle(pageid, "Property:TopicLink_targetMultiple", null); if (targetMultipleTriple != null) targetMultiple = targetMultipleTriple.getObject().toString(); Triple targetTriple = query.selectSingle(pageid, "target", null); if (targetTriple == null) targetTriple = query.selectSingle(pageid, "Property:TopicLink_target", null); if (targetTriple != null) target = targetTriple.getObject().toString(); Triple masterDetailTriple = query.selectSingle(pageid, "masterDetail", null); if (masterDetailTriple == null) masterDetailTriple = query.selectSingle(pageid, "Property:TopicLink_masterDetail", null); if (masterDetailTriple != null) masterDetail = masterDetailTriple.getObject().toString(); Triple targetDocumentationTriple = query.selectSingle(pageid, "targetDocumentation", null); if (targetDocumentationTriple == null) targetDocumentationTriple = query.selectSingle(pageid, "Property:TopicLink_targetDocumentation", null); if (targetDocumentationTriple != null) targetDocumentation = targetDocumentationTriple.getObject().toString(); init(query); } // constructor for TopicLink // >>>{user defined topic code}{TopicLink}{TopicLink} Topic sourceTopic = null; Topic targetTopic = null; // <<<{user defined topic code}{TopicLink}{TopicLink} } // class TopicLink /** * Manager for TopicLink */ static class TopicLinkManager extends TopicBase { public String topicName = "TopicLink"; public List<TopicLink> mTopicLinks = new ArrayList<TopicLink>(); public Map<String, TopicLink> mTopicLinkMap = new LinkedHashMap<String, TopicLink>(); /** * add a new TopicLink */ public TopicLink add(TopicLink pTopicLink) { mTopicLinks.add(pTopicLink); mTopicLinkMap.put(pTopicLink.getPageid(), pTopicLink); return pTopicLink; } /** * add a new TopicLink from the given triple */ public TopicLink add(TripleQuery query, Triple pTopicLinkTriple) { TopicLink lTopicLink = new TopicLink(query, pTopicLinkTriple); add(lTopicLink); return lTopicLink; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public TopicLinkManager() { } // construct me from the given triple Query query public TopicLinkManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicLinkQuery = query.query(null, "isA", "TopicLink"); for (Triple lTopicLinkTriple : lTopicLinkQuery.getTriples()) { add(query, lTopicLinkTriple); } // then the SMW triplestore lTopicLinkQuery = query.query(null, "Property:IsA", "TopicLink"); for (Triple lTopicLinkTriple : lTopicLinkQuery.getTriples()) { add(query, lTopicLinkTriple); } init(query); } // constructor for TopicLink Manager // >>>{user defined topicmanager code}{TopicLink}{TopicLink} // <<<{user defined topicmanager code}{TopicLink}{TopicLink} } // class TopicLink Manager } @{ // global variables // will only be set if tripleStore argument is available e.g. not for dialogs Topic maintopic=null; TripleQuery query=null; TripleQuery topics=null; ContextManager mContextManager=null; TopicManager mTopicManager=null; String maintopicName=null; if (tripleStore!=null) { query=tripleStore.query(); topics=query.query(null,"isA","Topic"); mContextManager=new ContextManager(tripleStore); mTopicManager=new TopicManager(query); // PropertyManager mPropertyManager=new PropertyManager(query); // TopicLinkManager mTopicLinkManager=new TopicLinkManager(query); // SMW_TypeManager mSMW_TypeManager=new SMW_TypeManager(query); mTopicManager.configureTopics(); maintopicName=wikiTask.getParams(); if (maintopicName!=null) { maintopic=mTopicManager.byName(maintopicName); } } } </source> 5295a51d919daf845a519a1abbe4638c84b6c164 File:Index.png 6 161 283 223 2016-01-26T08:13:55Z Wf 1 Wf uploaded a new version of [[File:Index.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 305 283 2016-02-17T08:24:41Z Wf 1 Wf uploaded a new version of [[File:Index.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Link.png 6 162 284 224 2016-01-26T08:13:56Z Wf 1 Wf uploaded a new version of [[File:Link.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 306 284 2016-02-17T08:24:41Z Wf 1 Wf uploaded a new version of [[File:Link.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Element into input.png 6 163 285 225 2016-01-26T08:13:57Z Wf 1 Wf uploaded a new version of [[File:Element into input.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 307 285 2016-02-17T08:24:42Z Wf 1 Wf uploaded a new version of [[File:Element into input.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Component.png 6 164 286 226 2016-01-26T08:13:57Z Wf 1 Wf uploaded a new version of [[File:Component.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 308 286 2016-02-17T08:24:42Z Wf 1 Wf uploaded a new version of [[File:Component.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Registry.png 6 165 287 227 2016-01-26T08:13:58Z Wf 1 Wf uploaded a new version of [[File:Registry.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 309 287 2016-02-17T08:24:43Z Wf 1 Wf uploaded a new version of [[File:Registry.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Category Icon.png 6 166 288 228 2016-01-26T08:13:59Z Wf 1 Wf uploaded a new version of [[File:Category Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 310 288 2016-02-17T08:24:44Z Wf 1 Wf uploaded a new version of [[File:Category Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Concept Icon.png 6 167 289 229 2016-01-26T08:14:00Z Wf 1 Wf uploaded a new version of [[File:Concept Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 311 289 2016-02-17T08:24:44Z Wf 1 Wf uploaded a new version of [[File:Concept Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Help Icon.png 6 168 290 230 2016-01-26T08:14:00Z Wf 1 Wf uploaded a new version of [[File:Help Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 312 290 2016-02-17T08:24:45Z Wf 1 Wf uploaded a new version of [[File:Help Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:List Icon.png 6 169 291 231 2016-01-26T08:14:01Z Wf 1 Wf uploaded a new version of [[File:List Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 313 291 2016-02-17T08:24:46Z Wf 1 Wf uploaded a new version of [[File:List Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Icon template.png 6 170 292 232 2016-01-26T08:14:02Z Wf 1 Wf uploaded a new version of [[File:Icon template.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 314 292 2016-02-17T08:24:46Z Wf 1 Wf uploaded a new version of [[File:Icon template.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Form icon.jpg 6 171 293 233 2016-01-26T08:14:03Z Wf 1 Wf uploaded a new version of [[File:Form icon.jpg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 315 293 2016-02-17T08:24:47Z Wf 1 Wf uploaded a new version of [[File:Form icon.jpg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Java icon.png 6 172 294 234 2016-01-26T08:14:04Z Wf 1 Wf uploaded a new version of [[File:Java icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 316 294 2016-02-17T08:24:47Z Wf 1 Wf uploaded a new version of [[File:Java icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:BITPlanLogo2012.svg 6 2 295 240 2016-01-26T08:14:17Z Wf 1 Wf uploaded a new version of [[File:BITPlanLogo2012.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:FixmeIcon.png 6 181 296 252 2016-01-26T08:14:29Z Wf 1 Wf uploaded a new version of [[File:FixmeIcon.png]] wikitext text/x-wiki File uploaded with MsUpload a655f04485ff507c02499d137d22a0d3e0ea32c2 File:Szenario.png 6 188 298 2016-01-29T15:59:41Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Template:! 10 153 304 205 2016-02-17T08:24:22Z Wf 1 transfered by WikiBackup wikiTask at 2016-02-17T08:24:21Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:TopicWikitasks |next=Template:Bigstock }} This is the "!" template. Allows to have a | in a template by using <pre>{{¡}}</pre> </noinclude><includeonly>|</includeonly> 93f8ed43dc274368ab94ac6e4baba0da51328b6b File:BITPlanLogo2012.svg 6 2 317 295 2016-02-17T08:25:00Z Wf 1 Wf uploaded a new version of [[File:BITPlanLogo2012.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:FixmeIcon.png 6 181 318 296 2016-02-17T08:25:10Z Wf 1 Wf uploaded a new version of [[File:FixmeIcon.png]] wikitext text/x-wiki File uploaded with MsUpload a655f04485ff507c02499d137d22a0d3e0ea32c2 Template:Bigstock 10 192 319 2016-02-17T08:25:10Z Wf 1 transfered by WikiBackup wikiTask at 2016-02-17T08:25:10Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:! |next=Template:ContextWikitask }} <noinclude> <!-- -- Copyright (C) 2015-2016 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> This is the template bigstock it is used to display bigstock photos. See {{Link|target=Property:Bigstock id}} === examples === <pre> {{bigstock |id=86096639 |title=stock-foto-percent-symbol-and-business-chart-on-financial-paper |size=200 }} </pre> {{bigstock |id=86096639 |title=stock-foto-percent-symbol-and-business-chart-on-financial-paper |size=200 }} === non paid === <pre> {{bigstock |id=87055265 }} </pre> {{bigstock |id=87055265 }} === copyright === <pre> {{bigstock |id=86096639 |copyright=true }} </pre> {{bigstock |id=86096639 |copyright=true }} == paid file == <pre> {{bigstock |id=22569032 |size=200 }} </pre> {{bigstock |id=22569032 |size=200 }} === non sized === {{bigstock |id=22569032 }} === usage tracking === see {{Link|target=Property:Bigstock id}} === how it works === Bigstock stores the thumbnail images like this: <pre>http://static1.bigstockphoto.com/thumbs/0/6/8/large2/86096639.jpg</pre> so <pre>/0/6/8</pre> is just the first three digits of the id in reverse order separated by slashes. </noinclude><includeonly>{{#vardefine: iconfile|{{#ask: [[Bigstock id::{{{id|}}}]] [[Bigstock file::+]]| ?Bigstock file#= | mainlabel=- | limit=1 }}}}{{#switch:{{{storemode|}}} |none= |subobject={{#subobject:- |isA=Bigstock |Bigstock id={{{id|}}} |Bigstock file={{{file|}}} }} |#default={{#set: |isA=Bigstock |Bigstock id={{{id|}}} |Bigstock file={{{file|}}} }} }}{{#if:{{{copyright|}}}|<br>Foto: © bigstockphoto.com http://www.bigstockphoto.de/image-{{{id|}}}{{{id|}}}|{{#if:{{#var:iconfile}}|[[File:{{#var:iconfile}}{{!}}{{{size|450}}}px]]|<img src="http://static1.bigstockphoto.com/thumbs/{{#sub:{{{id|}}}|2|1}}/{{#sub:{{{id|}}}|1|1}}/{{#sub:{{{id|}}}|0|1}}/large2/{{{id|}}}.jpg" title="{{{title|}}}" {{#if:{{{size|}}}|width="{{{size|}}}"}}>}}}} </includeonly> 459529f52baa35f36071e73690aa0c8769fc4b1d Template:HideSideBar 10 193 320 2016-02-17T08:25:11Z Wf 1 transfered by WikiBackup wikiTask at 2016-02-17T08:25:11Z wikitext text/x-wiki <noinclude>{{TemplateSequence|prev=Template:Fixme|next=Template:Icon}} This is the "HideSideBar" Template. It hides the sidebar - so be careful where to use it! === Example === <pre>{{HideSideBar}}</pre> {{HideSideBar}} No sidebar? This is on purpose. You need to click edit and uncomment <nowiki>{{HideSideBar}}</nowiki> if you want to do maintainance on this template ... </noinclude><includeonly><html> <style> /** Hide title **/ #firstHeading{ display: none; } /** Hide sidebar **/ div#mw-panel { display: none; } #left-navigation { left: 1em; } #mw-head-base, div#content, div#footer { margin-left: 1em; } </style> </html></includeonly> 084c0bfc2b3b34c49d985cdb030897e45e4bd43c Icons 0 194 321 2016-02-17T08:25:15Z Wf 1 transfered by WikiBackup wikiTask at 2016-02-17T08:25:12Z wikitext text/x-wiki {{Icon |name=home |style=shadow |size=48 |storemode=subobject }} {{Icon |name=edit |style=shadow |size=48 |storemode=subobject }} {{Icon |name=wrench |style=shadow |size=48 |storemode=subobject }} {{Icon |name=nav_left_blue |style=shadow |size=48 |storemode=subobject }} {{Icon |name=nav_right_blue |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sign-in |size=48 |storemode=subobject }} {{Icon |name=glass |style=shadow |size=48 |storemode=subobject }} {{Icon |name=music |style=shadow |size=48 |storemode=subobject }} {{Icon |name=search |style=shadow |size=48 |storemode=subobject }} {{Icon |name=envelope-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=heart |style=shadow |size=48 |storemode=subobject }} {{Icon |name=star |style=shadow |size=48 |storemode=subobject }} {{Icon |name=star-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=user |style=shadow |size=48 |storemode=subobject }} {{Icon |name=film |style=shadow |size=48 |storemode=subobject }} {{Icon |name=th-large |style=shadow |size=48 |storemode=subobject }} {{Icon |name=th |style=shadow |size=48 |storemode=subobject }} {{Icon |name=th-list |style=shadow |size=48 |storemode=subobject }} {{Icon |name=check |style=shadow |size=48 |storemode=subobject }} {{Icon |name=times |style=shadow |size=48 |storemode=subobject }} {{Icon |name=search-plus |style=shadow |size=48 |storemode=subobject }} {{Icon |name=search-minus |style=shadow |size=48 |storemode=subobject }} {{Icon |name=power-off |style=shadow |size=48 |storemode=subobject }} {{Icon |name=signal |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cog |style=shadow |size=48 |storemode=subobject }} {{Icon |name=trash-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=home |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=clock-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=road |style=shadow |size=48 |storemode=subobject }} {{Icon |name=download |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-circle-o-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-circle-o-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=inbox |style=shadow |size=48 |storemode=subobject }} {{Icon |name=play-circle-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=repeat |style=shadow |size=48 |storemode=subobject }} {{Icon |name=refresh |style=shadow |size=48 |storemode=subobject }} {{Icon |name=list-alt |style=shadow |size=48 |storemode=subobject }} {{Icon |name=lock |style=shadow |size=48 |storemode=subobject }} {{Icon |name=flag |style=shadow |size=48 |storemode=subobject }} {{Icon |name=headphones |style=shadow |size=48 |storemode=subobject }} {{Icon |name=volume-off |style=shadow |size=48 |storemode=subobject }} {{Icon |name=volume-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=volume-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=qrcode |style=shadow |size=48 |storemode=subobject }} {{Icon |name=barcode |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tag |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tags |style=shadow |size=48 |storemode=subobject }} {{Icon |name=book |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bookmark |style=shadow |size=48 |storemode=subobject }} {{Icon |name=print |style=shadow |size=48 |storemode=subobject }} {{Icon |name=camera |style=shadow |size=48 |storemode=subobject }} {{Icon |name=font |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bold |style=shadow |size=48 |storemode=subobject }} {{Icon |name=italic |style=shadow |size=48 |storemode=subobject }} {{Icon |name=text-height |style=shadow |size=48 |storemode=subobject }} {{Icon |name=text-width |style=shadow |size=48 |storemode=subobject }} {{Icon |name=align-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=align-center |style=shadow |size=48 |storemode=subobject }} {{Icon |name=align-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=align-justify |style=shadow |size=48 |storemode=subobject }} {{Icon |name=list |style=shadow |size=48 |storemode=subobject }} {{Icon |name=outdent |style=shadow |size=48 |storemode=subobject }} {{Icon |name=indent |style=shadow |size=48 |storemode=subobject }} {{Icon |name=video-camera |style=shadow |size=48 |storemode=subobject }} {{Icon |name=picture-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pencil |style=shadow |size=48 |storemode=subobject }} {{Icon |name=map-marker |style=shadow |size=48 |storemode=subobject }} {{Icon |name=adjust |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tint |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pencil-square-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=share-square-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=check-square-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrows |style=shadow |size=48 |storemode=subobject }} {{Icon |name=step-backward |style=shadow |size=48 |storemode=subobject }} {{Icon |name=fast-backward |style=shadow |size=48 |storemode=subobject }} {{Icon |name=backward |style=shadow |size=48 |storemode=subobject }} {{Icon |name=play |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pause |style=shadow |size=48 |storemode=subobject }} {{Icon |name=stop |style=shadow |size=48 |storemode=subobject }} {{Icon |name=forward |style=shadow |size=48 |storemode=subobject }} {{Icon |name=fast-forward |style=shadow |size=48 |storemode=subobject }} {{Icon |name=step-forward |style=shadow |size=48 |storemode=subobject }} {{Icon |name=eject |style=shadow |size=48 |storemode=subobject }} {{Icon |name=chevron-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=chevron-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=plus-circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=minus-circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=times-circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=check-circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=question-circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=info-circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=crosshairs |style=shadow |size=48 |storemode=subobject }} {{Icon |name=times-circle-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=check-circle-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=ban |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=share |style=shadow |size=48 |storemode=subobject }} {{Icon |name=expand |style=shadow |size=48 |storemode=subobject }} {{Icon |name=compress |style=shadow |size=48 |storemode=subobject }} {{Icon |name=plus |style=shadow |size=48 |storemode=subobject }} {{Icon |name=minus |style=shadow |size=48 |storemode=subobject }} {{Icon |name=asterisk |style=shadow |size=48 |storemode=subobject }} {{Icon |name=exclamation-circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=gift |style=shadow |size=48 |storemode=subobject }} {{Icon |name=leaf |style=shadow |size=48 |storemode=subobject }} {{Icon |name=fire |style=shadow |size=48 |storemode=subobject }} {{Icon |name=eye |style=shadow |size=48 |storemode=subobject }} {{Icon |name=eye-slash |style=shadow |size=48 |storemode=subobject }} {{Icon |name=exclamation-triangle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=plane |style=shadow |size=48 |storemode=subobject }} {{Icon |name=calendar |style=shadow |size=48 |storemode=subobject }} {{Icon |name=random |style=shadow |size=48 |storemode=subobject }} {{Icon |name=comment |style=shadow |size=48 |storemode=subobject }} {{Icon |name=magnet |style=shadow |size=48 |storemode=subobject }} {{Icon |name=chevron-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=chevron-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=retweet |style=shadow |size=48 |storemode=subobject }} {{Icon |name=shopping-cart |style=shadow |size=48 |storemode=subobject }} {{Icon |name=folder |style=shadow |size=48 |storemode=subobject }} {{Icon |name=folder-open |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrows-v |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrows-h |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bar-chart |style=shadow |size=48 |storemode=subobject }} {{Icon |name=twitter-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=facebook-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=camera-retro |style=shadow |size=48 |storemode=subobject }} {{Icon |name=key |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cogs |style=shadow |size=48 |storemode=subobject }} {{Icon |name=comments |style=shadow |size=48 |storemode=subobject }} {{Icon |name=thumbs-o-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=thumbs-o-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=star-half |style=shadow |size=48 |storemode=subobject }} {{Icon |name=heart-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sign-out |style=shadow |size=48 |storemode=subobject }} {{Icon |name=linkedin-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=thumb-tack |style=shadow |size=48 |storemode=subobject }} {{Icon |name=external-link |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sign-in |style=shadow |size=48 |storemode=subobject }} {{Icon |name=trophy |style=shadow |size=48 |storemode=subobject }} {{Icon |name=github-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=upload |style=shadow |size=48 |storemode=subobject }} {{Icon |name=lemon-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=phone |style=shadow |size=48 |storemode=subobject }} {{Icon |name=square-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bookmark-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=phone-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=twitter |style=shadow |size=48 |storemode=subobject }} {{Icon |name=facebook |style=shadow |size=48 |storemode=subobject }} {{Icon |name=github |style=shadow |size=48 |storemode=subobject }} {{Icon |name=unlock |style=shadow |size=48 |storemode=subobject }} {{Icon |name=credit-card |style=shadow |size=48 |storemode=subobject }} {{Icon |name=rss |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hdd-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bullhorn |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bell |style=shadow |size=48 |storemode=subobject }} {{Icon |name=certificate |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-o-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-o-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-o-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-o-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-circle-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-circle-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-circle-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-circle-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=globe |style=shadow |size=48 |storemode=subobject }} {{Icon |name=wrench |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tasks |style=shadow |size=48 |storemode=subobject }} {{Icon |name=filter |style=shadow |size=48 |storemode=subobject }} {{Icon |name=briefcase |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrows-alt |style=shadow |size=48 |storemode=subobject }} {{Icon |name=users |style=shadow |size=48 |storemode=subobject }} {{Icon |name=link |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cloud |style=shadow |size=48 |storemode=subobject }} {{Icon |name=flask |style=shadow |size=48 |storemode=subobject }} {{Icon |name=scissors |style=shadow |size=48 |storemode=subobject }} {{Icon |name=files-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=paperclip |style=shadow |size=48 |storemode=subobject }} {{Icon |name=floppy-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bars |style=shadow |size=48 |storemode=subobject }} {{Icon |name=list-ul |style=shadow |size=48 |storemode=subobject }} {{Icon |name=list-ol |style=shadow |size=48 |storemode=subobject }} {{Icon |name=strikethrough |style=shadow |size=48 |storemode=subobject }} {{Icon |name=underline |style=shadow |size=48 |storemode=subobject }} {{Icon |name=table |style=shadow |size=48 |storemode=subobject }} {{Icon |name=magic |style=shadow |size=48 |storemode=subobject }} {{Icon |name=truck |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pinterest |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pinterest-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=google-plus-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=google-plus |style=shadow |size=48 |storemode=subobject }} {{Icon |name=money |style=shadow |size=48 |storemode=subobject }} {{Icon |name=caret-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=caret-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=caret-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=caret-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=columns |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sort |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sort-desc |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sort-asc |style=shadow |size=48 |storemode=subobject }} {{Icon |name=envelope |style=shadow |size=48 |storemode=subobject }} {{Icon |name=linkedin |style=shadow |size=48 |storemode=subobject }} {{Icon |name=undo |style=shadow |size=48 |storemode=subobject }} {{Icon |name=gavel |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tachometer |style=shadow |size=48 |storemode=subobject }} {{Icon |name=comment-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=comments-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bolt |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sitemap |style=shadow |size=48 |storemode=subobject }} {{Icon |name=umbrella |style=shadow |size=48 |storemode=subobject }} {{Icon |name=clipboard |style=shadow |size=48 |storemode=subobject }} {{Icon |name=lightbulb-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=exchange |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cloud-download |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cloud-upload |style=shadow |size=48 |storemode=subobject }} {{Icon |name=user-md |style=shadow |size=48 |storemode=subobject }} {{Icon |name=stethoscope |style=shadow |size=48 |storemode=subobject }} {{Icon |name=suitcase |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bell-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=coffee |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cutlery |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-text-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=building-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hospital-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=ambulance |style=shadow |size=48 |storemode=subobject }} {{Icon |name=medkit |style=shadow |size=48 |storemode=subobject }} {{Icon |name=fighter-jet |style=shadow |size=48 |storemode=subobject }} {{Icon |name=beer |style=shadow |size=48 |storemode=subobject }} {{Icon |name=h-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=plus-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=angle-double-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=angle-double-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=angle-double-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=angle-double-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=angle-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=angle-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=angle-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=angle-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=desktop |style=shadow |size=48 |storemode=subobject }} {{Icon |name=laptop |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tablet |style=shadow |size=48 |storemode=subobject }} {{Icon |name=mobile |style=shadow |size=48 |storemode=subobject }} {{Icon |name=circle-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=quote-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=quote-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=spinner |style=shadow |size=48 |storemode=subobject }} {{Icon |name=circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=reply |style=shadow |size=48 |storemode=subobject }} {{Icon |name=github-alt |style=shadow |size=48 |storemode=subobject }} {{Icon |name=folder-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=folder-open-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=smile-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=frown-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=meh-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=gamepad |style=shadow |size=48 |storemode=subobject }} {{Icon |name=keyboard-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=flag-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=flag-checkered |style=shadow |size=48 |storemode=subobject }} {{Icon |name=terminal |style=shadow |size=48 |storemode=subobject }} {{Icon |name=code |style=shadow |size=48 |storemode=subobject }} {{Icon |name=reply-all |style=shadow |size=48 |storemode=subobject }} {{Icon |name=star-half-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=location-arrow |style=shadow |size=48 |storemode=subobject }} {{Icon |name=crop |style=shadow |size=48 |storemode=subobject }} {{Icon |name=code-fork |style=shadow |size=48 |storemode=subobject }} {{Icon |name=chain-broken |style=shadow |size=48 |storemode=subobject }} {{Icon |name=question |style=shadow |size=48 |storemode=subobject }} {{Icon |name=info |style=shadow |size=48 |storemode=subobject }} {{Icon |name=exclamation |style=shadow |size=48 |storemode=subobject }} {{Icon |name=superscript |style=shadow |size=48 |storemode=subobject }} {{Icon |name=subscript |style=shadow |size=48 |storemode=subobject }} {{Icon |name=eraser |style=shadow |size=48 |storemode=subobject }} {{Icon |name=puzzle-piece |style=shadow |size=48 |storemode=subobject }} {{Icon |name=microphone |style=shadow |size=48 |storemode=subobject }} {{Icon |name=microphone-slash |style=shadow |size=48 |storemode=subobject }} {{Icon |name=shield |style=shadow |size=48 |storemode=subobject }} {{Icon |name=calendar-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=fire-extinguisher |style=shadow |size=48 |storemode=subobject }} {{Icon |name=rocket |style=shadow |size=48 |storemode=subobject }} {{Icon |name=maxcdn |style=shadow |size=48 |storemode=subobject }} {{Icon |name=chevron-circle-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=chevron-circle-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=chevron-circle-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=chevron-circle-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=html5 |style=shadow |size=48 |storemode=subobject }} {{Icon |name=css3 |style=shadow |size=48 |storemode=subobject }} {{Icon |name=anchor |style=shadow |size=48 |storemode=subobject }} {{Icon |name=unlock-alt |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bullseye |style=shadow |size=48 |storemode=subobject }} {{Icon |name=ellipsis-h |style=shadow |size=48 |storemode=subobject }} {{Icon |name=ellipsis-v |style=shadow |size=48 |storemode=subobject }} {{Icon |name=rss-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=play-circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=ticket |style=shadow |size=48 |storemode=subobject }} {{Icon |name=minus-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=minus-square-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=level-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=level-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=check-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pencil-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=external-link-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=share-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=compass |style=shadow |size=48 |storemode=subobject }} {{Icon |name=caret-square-o-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=caret-square-o-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=caret-square-o-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=eur |style=shadow |size=48 |storemode=subobject }} {{Icon |name=gbp |style=shadow |size=48 |storemode=subobject }} {{Icon |name=usd |style=shadow |size=48 |storemode=subobject }} {{Icon |name=inr |style=shadow |size=48 |storemode=subobject }} {{Icon |name=jpy |style=shadow |size=48 |storemode=subobject }} {{Icon |name=rub |style=shadow |size=48 |storemode=subobject }} {{Icon |name=krw |style=shadow |size=48 |storemode=subobject }} {{Icon |name=btc |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-text |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sort-alpha-asc |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sort-alpha-desc |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sort-amount-asc |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sort-amount-desc |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sort-numeric-asc |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sort-numeric-desc |style=shadow |size=48 |storemode=subobject }} {{Icon |name=thumbs-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=thumbs-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=youtube-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=youtube |style=shadow |size=48 |storemode=subobject }} {{Icon |name=xing |style=shadow |size=48 |storemode=subobject }} {{Icon |name=xing-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=youtube-play |style=shadow |size=48 |storemode=subobject }} {{Icon |name=dropbox |style=shadow |size=48 |storemode=subobject }} {{Icon |name=stack-overflow |style=shadow |size=48 |storemode=subobject }} {{Icon |name=instagram |style=shadow |size=48 |storemode=subobject }} {{Icon |name=flickr |style=shadow |size=48 |storemode=subobject }} {{Icon |name=adn |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bitbucket |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bitbucket-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tumblr |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tumblr-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=long-arrow-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=long-arrow-up |style=shadow |size=48 |storemode=subobject }} {{Icon |name=long-arrow-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=long-arrow-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=apple |style=shadow |size=48 |storemode=subobject }} {{Icon |name=windows |style=shadow |size=48 |storemode=subobject }} {{Icon |name=android |style=shadow |size=48 |storemode=subobject }} {{Icon |name=linux |style=shadow |size=48 |storemode=subobject }} {{Icon |name=dribbble |style=shadow |size=48 |storemode=subobject }} {{Icon |name=skype |style=shadow |size=48 |storemode=subobject }} {{Icon |name=foursquare |style=shadow |size=48 |storemode=subobject }} {{Icon |name=trello |style=shadow |size=48 |storemode=subobject }} {{Icon |name=female |style=shadow |size=48 |storemode=subobject }} {{Icon |name=male |style=shadow |size=48 |storemode=subobject }} {{Icon |name=gratipay |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sun-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=moon-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=archive |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bug |style=shadow |size=48 |storemode=subobject }} {{Icon |name=vk |style=shadow |size=48 |storemode=subobject }} {{Icon |name=weibo |style=shadow |size=48 |storemode=subobject }} {{Icon |name=renren |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pagelines |style=shadow |size=48 |storemode=subobject }} {{Icon |name=stack-exchange |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-circle-o-right |style=shadow |size=48 |storemode=subobject }} {{Icon |name=arrow-circle-o-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=caret-square-o-left |style=shadow |size=48 |storemode=subobject }} {{Icon |name=dot-circle-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=wheelchair |style=shadow |size=48 |storemode=subobject }} {{Icon |name=vimeo-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=try |style=shadow |size=48 |storemode=subobject }} {{Icon |name=plus-square-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=space-shuttle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=slack |style=shadow |size=48 |storemode=subobject }} {{Icon |name=envelope-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=wordpress |style=shadow |size=48 |storemode=subobject }} {{Icon |name=openid |style=shadow |size=48 |storemode=subobject }} {{Icon |name=university |style=shadow |size=48 |storemode=subobject }} {{Icon |name=graduation-cap |style=shadow |size=48 |storemode=subobject }} {{Icon |name=yahoo |style=shadow |size=48 |storemode=subobject }} {{Icon |name=google |style=shadow |size=48 |storemode=subobject }} {{Icon |name=reddit |style=shadow |size=48 |storemode=subobject }} {{Icon |name=reddit-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=stumbleupon-circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=stumbleupon |style=shadow |size=48 |storemode=subobject }} {{Icon |name=delicious |style=shadow |size=48 |storemode=subobject }} {{Icon |name=digg |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pied-piper |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pied-piper-alt |style=shadow |size=48 |storemode=subobject }} {{Icon |name=drupal |style=shadow |size=48 |storemode=subobject }} {{Icon |name=joomla |style=shadow |size=48 |storemode=subobject }} {{Icon |name=language |style=shadow |size=48 |storemode=subobject }} {{Icon |name=fax |style=shadow |size=48 |storemode=subobject }} {{Icon |name=building |style=shadow |size=48 |storemode=subobject }} {{Icon |name=child |style=shadow |size=48 |storemode=subobject }} {{Icon |name=paw |style=shadow |size=48 |storemode=subobject }} {{Icon |name=spoon |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cube |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cubes |style=shadow |size=48 |storemode=subobject }} {{Icon |name=behance |style=shadow |size=48 |storemode=subobject }} {{Icon |name=behance-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=steam |style=shadow |size=48 |storemode=subobject }} {{Icon |name=steam-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=recycle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=car |style=shadow |size=48 |storemode=subobject }} {{Icon |name=taxi |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tree |style=shadow |size=48 |storemode=subobject }} {{Icon |name=spotify |style=shadow |size=48 |storemode=subobject }} {{Icon |name=deviantart |style=shadow |size=48 |storemode=subobject }} {{Icon |name=soundcloud |style=shadow |size=48 |storemode=subobject }} {{Icon |name=database |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-pdf-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-word-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-excel-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-powerpoint-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-image-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-archive-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-audio-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-video-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=file-code-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=vine |style=shadow |size=48 |storemode=subobject }} {{Icon |name=codepen |style=shadow |size=48 |storemode=subobject }} {{Icon |name=jsfiddle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=life-ring |style=shadow |size=48 |storemode=subobject }} {{Icon |name=circle-o-notch |style=shadow |size=48 |storemode=subobject }} {{Icon |name=rebel |style=shadow |size=48 |storemode=subobject }} {{Icon |name=empire |style=shadow |size=48 |storemode=subobject }} {{Icon |name=git-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=git |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hacker-news |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tencent-weibo |style=shadow |size=48 |storemode=subobject }} {{Icon |name=qq |style=shadow |size=48 |storemode=subobject }} {{Icon |name=weixin |style=shadow |size=48 |storemode=subobject }} {{Icon |name=paper-plane |style=shadow |size=48 |storemode=subobject }} {{Icon |name=paper-plane-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=history |style=shadow |size=48 |storemode=subobject }} {{Icon |name=circle-thin |style=shadow |size=48 |storemode=subobject }} {{Icon |name=header |style=shadow |size=48 |storemode=subobject }} {{Icon |name=paragraph |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sliders |style=shadow |size=48 |storemode=subobject }} {{Icon |name=share-alt |style=shadow |size=48 |storemode=subobject }} {{Icon |name=share-alt-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bomb |style=shadow |size=48 |storemode=subobject }} {{Icon |name=futbol-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tty |style=shadow |size=48 |storemode=subobject }} {{Icon |name=binoculars |style=shadow |size=48 |storemode=subobject }} {{Icon |name=plug |style=shadow |size=48 |storemode=subobject }} {{Icon |name=slideshare |style=shadow |size=48 |storemode=subobject }} {{Icon |name=twitch |style=shadow |size=48 |storemode=subobject }} {{Icon |name=yelp |style=shadow |size=48 |storemode=subobject }} {{Icon |name=newspaper-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=wifi |style=shadow |size=48 |storemode=subobject }} {{Icon |name=calculator |style=shadow |size=48 |storemode=subobject }} {{Icon |name=paypal |style=shadow |size=48 |storemode=subobject }} {{Icon |name=google-wallet |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cc-visa |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cc-mastercard |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cc-discover |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cc-amex |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cc-paypal |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cc-stripe |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bell-slash |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bell-slash-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=trash |style=shadow |size=48 |storemode=subobject }} {{Icon |name=copyright |style=shadow |size=48 |storemode=subobject }} {{Icon |name=at |style=shadow |size=48 |storemode=subobject }} {{Icon |name=eyedropper |style=shadow |size=48 |storemode=subobject }} {{Icon |name=paint-brush |style=shadow |size=48 |storemode=subobject }} {{Icon |name=birthday-cake |style=shadow |size=48 |storemode=subobject }} {{Icon |name=area-chart |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pie-chart |style=shadow |size=48 |storemode=subobject }} {{Icon |name=line-chart |style=shadow |size=48 |storemode=subobject }} {{Icon |name=lastfm |style=shadow |size=48 |storemode=subobject }} {{Icon |name=lastfm-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=toggle-off |style=shadow |size=48 |storemode=subobject }} {{Icon |name=toggle-on |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bicycle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bus |style=shadow |size=48 |storemode=subobject }} {{Icon |name=ioxhost |style=shadow |size=48 |storemode=subobject }} {{Icon |name=angellist |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cc |style=shadow |size=48 |storemode=subobject }} {{Icon |name=ils |style=shadow |size=48 |storemode=subobject }} {{Icon |name=meanpath |style=shadow |size=48 |storemode=subobject }} {{Icon |name=buysellads |style=shadow |size=48 |storemode=subobject }} {{Icon |name=connectdevelop |style=shadow |size=48 |storemode=subobject }} {{Icon |name=dashcube |style=shadow |size=48 |storemode=subobject }} {{Icon |name=forumbee |style=shadow |size=48 |storemode=subobject }} {{Icon |name=leanpub |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sellsy |style=shadow |size=48 |storemode=subobject }} {{Icon |name=shirtsinbulk |style=shadow |size=48 |storemode=subobject }} {{Icon |name=simplybuilt |style=shadow |size=48 |storemode=subobject }} {{Icon |name=skyatlas |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cart-plus |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cart-arrow-down |style=shadow |size=48 |storemode=subobject }} {{Icon |name=diamond |style=shadow |size=48 |storemode=subobject }} {{Icon |name=ship |style=shadow |size=48 |storemode=subobject }} {{Icon |name=user-secret |style=shadow |size=48 |storemode=subobject }} {{Icon |name=motorcycle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=street-view |style=shadow |size=48 |storemode=subobject }} {{Icon |name=heartbeat |style=shadow |size=48 |storemode=subobject }} {{Icon |name=venus |style=shadow |size=48 |storemode=subobject }} {{Icon |name=mars |style=shadow |size=48 |storemode=subobject }} {{Icon |name=mercury |style=shadow |size=48 |storemode=subobject }} {{Icon |name=transgender |style=shadow |size=48 |storemode=subobject }} {{Icon |name=transgender-alt |style=shadow |size=48 |storemode=subobject }} {{Icon |name=venus-double |style=shadow |size=48 |storemode=subobject }} {{Icon |name=mars-double |style=shadow |size=48 |storemode=subobject }} {{Icon |name=venus-mars |style=shadow |size=48 |storemode=subobject }} {{Icon |name=mars-stroke |style=shadow |size=48 |storemode=subobject }} {{Icon |name=mars-stroke-v |style=shadow |size=48 |storemode=subobject }} {{Icon |name=mars-stroke-h |style=shadow |size=48 |storemode=subobject }} {{Icon |name=neuter |style=shadow |size=48 |storemode=subobject }} {{Icon |name=genderless |style=shadow |size=48 |storemode=subobject }} {{Icon |name=facebook-official |style=shadow |size=48 |storemode=subobject }} {{Icon |name=pinterest-p |style=shadow |size=48 |storemode=subobject }} {{Icon |name=whatsapp |style=shadow |size=48 |storemode=subobject }} {{Icon |name=server |style=shadow |size=48 |storemode=subobject }} {{Icon |name=user-plus |style=shadow |size=48 |storemode=subobject }} {{Icon |name=user-times |style=shadow |size=48 |storemode=subobject }} {{Icon |name=bed |style=shadow |size=48 |storemode=subobject }} {{Icon |name=viacoin |style=shadow |size=48 |storemode=subobject }} {{Icon |name=train |style=shadow |size=48 |storemode=subobject }} {{Icon |name=subway |style=shadow |size=48 |storemode=subobject }} {{Icon |name=medium |style=shadow |size=48 |storemode=subobject }} {{Icon |name=y-combinator |style=shadow |size=48 |storemode=subobject }} {{Icon |name=optin-monster |style=shadow |size=48 |storemode=subobject }} {{Icon |name=opencart |style=shadow |size=48 |storemode=subobject }} {{Icon |name=expeditedssl |style=shadow |size=48 |storemode=subobject }} {{Icon |name=battery-full |style=shadow |size=48 |storemode=subobject }} {{Icon |name=battery-three-quarters |style=shadow |size=48 |storemode=subobject }} {{Icon |name=battery-half |style=shadow |size=48 |storemode=subobject }} {{Icon |name=battery-quarter |style=shadow |size=48 |storemode=subobject }} {{Icon |name=battery-empty |style=shadow |size=48 |storemode=subobject }} {{Icon |name=mouse-pointer |style=shadow |size=48 |storemode=subobject }} {{Icon |name=i-cursor |style=shadow |size=48 |storemode=subobject }} {{Icon |name=object-group |style=shadow |size=48 |storemode=subobject }} {{Icon |name=object-ungroup |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sticky-note |style=shadow |size=48 |storemode=subobject }} {{Icon |name=sticky-note-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cc-jcb |style=shadow |size=48 |storemode=subobject }} {{Icon |name=cc-diners-club |style=shadow |size=48 |storemode=subobject }} {{Icon |name=clone |style=shadow |size=48 |storemode=subobject }} {{Icon |name=balance-scale |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hourglass-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hourglass-start |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hourglass-half |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hourglass-end |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hourglass |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-rock-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-paper-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-scissors-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-lizard-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-spock-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-pointer-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=hand-peace-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=trademark |style=shadow |size=48 |storemode=subobject }} {{Icon |name=registered |style=shadow |size=48 |storemode=subobject }} {{Icon |name=creative-commons |style=shadow |size=48 |storemode=subobject }} {{Icon |name=gg |style=shadow |size=48 |storemode=subobject }} {{Icon |name=gg-circle |style=shadow |size=48 |storemode=subobject }} {{Icon |name=tripadvisor |style=shadow |size=48 |storemode=subobject }} {{Icon |name=odnoklassniki |style=shadow |size=48 |storemode=subobject }} {{Icon |name=odnoklassniki-square |style=shadow |size=48 |storemode=subobject }} {{Icon |name=get-pocket |style=shadow |size=48 |storemode=subobject }} {{Icon |name=wikipedia-w |style=shadow |size=48 |storemode=subobject }} {{Icon |name=safari |style=shadow |size=48 |storemode=subobject }} {{Icon |name=chrome |style=shadow |size=48 |storemode=subobject }} {{Icon |name=firefox |style=shadow |size=48 |storemode=subobject }} {{Icon |name=opera |style=shadow |size=48 |storemode=subobject }} {{Icon |name=internet-explorer |style=shadow |size=48 |storemode=subobject }} {{Icon |name=television |style=shadow |size=48 |storemode=subobject }} {{Icon |name=contao |style=shadow |size=48 |storemode=subobject }} {{Icon |name=500px |style=shadow |size=48 |storemode=subobject }} {{Icon |name=amazon |style=shadow |size=48 |storemode=subobject }} {{Icon |name=calendar-plus-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=calendar-minus-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=calendar-times-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=calendar-check-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=industry |style=shadow |size=48 |storemode=subobject }} {{Icon |name=map-pin |style=shadow |size=48 |storemode=subobject }} {{Icon |name=map-signs |style=shadow |size=48 |storemode=subobject }} {{Icon |name=map-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=map |style=shadow |size=48 |storemode=subobject }} {{Icon |name=commenting |style=shadow |size=48 |storemode=subobject }} {{Icon |name=commenting-o |style=shadow |size=48 |storemode=subobject }} {{Icon |name=houzz |style=shadow |size=48 |storemode=subobject }} {{Icon |name=vimeo |style=shadow |size=48 |storemode=subobject }} {{Icon |name=black-tie |style=shadow |size=48 |storemode=subobject }} {{Icon |name=fonticons |style=shadow |size=48 |storemode=subobject }} [[Category:Icon]] 1697493f58c0a7a07a939026c074c017eb792aeb File:15x18-fileicon-pdf.png 6 195 322 2016-02-17T08:25:21Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Template:Action 10 144 323 188 2016-02-17T08:25:22Z Wf 1 transfered by WikiBackup wikiTask at 2016-02-17T08:25:21Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT --> <!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> This is the template {{Link|target=Template:Action|title=Action}}. It belongs to the concept/topic {{Link|target=:Concept:Action}}<br> You may find examples for the use of this template via the {{Link|target=List of Actions}}. === Usage === ==== storemode subobject ==== <pre>{{Action |name= |servicetype= |service= |inputtype= |input= |actionpage= |output= |engine= |author= |since= |comment= |storemode=subobject }} </pre> ==== storemode property ==== <pre>{{Action |name= |servicetype= |service= |inputtype= |input= |actionpage= |output= |engine= |author= |since= |comment= |storemode=property }} </pre> ==== storemode none ==== <pre>{{Action |name= |servicetype= |service= |inputtype= |input= |actionpage= |output= |engine= |author= |since= |comment= |storemode=none }} </pre> ==== viewmode tableheader ==== <pre>{{Action |name= |servicetype= |service= |inputtype= |input= |actionpage= |output= |engine= |author= |since= |comment= |viewmode=tableheader }} </pre> ==== viewmode tablerow ==== <pre>{{Action |name= |servicetype= |service= |inputtype= |input= |actionpage= |output= |engine= |author= |since= |comment= |viewmode=tablerow }} </pre> ==== viewmode tablefooter ==== <pre>{{Action |name= |servicetype= |service= |inputtype= |input= |actionpage= |output= |engine= |author= |since= |comment= |viewmode=tablefooter }} </pre> ==== viewmode labelfield ==== <pre>{{Action |name= |servicetype= |service= |inputtype= |input= |actionpage= |output= |engine= |author= |since= |comment= |viewmode=labelfield }} </pre> === Source (pretty printed) === <source lang='html4strict'> {{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Action<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} {{#if:{{{?servicetype|}}}|"{{{?servicetype}}}" is servicetype of it <br>|}} {{#if:{{{?service|}}}|"{{{?service}}}" is service of it <br>|}} {{#if:{{{?inputtype|}}}|"{{{?inputtype}}}" is inputtype of it <br>|}} {{#if:{{{?input|}}}|"{{{?input}}}" is input of it <br>|}} {{#if:{{{?actionpage|}}}|"{{{?actionpage}}}" is actionpage of it <br>|}} {{#if:{{{?output|}}}|"{{{?output}}}" is output of it <br>|}} {{#if:{{{?engine|}}}|"{{{?engine}}}" is engine of it <br>|}} {{#if:{{{?author|}}}|"{{{?author}}}" is author of it <br>|}} {{#if:{{{?since|}}}|"{{{?since}}}" is since of it <br>|}} {{#if:{{{?comment|}}}|"{{{?comment}}}" is comment of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |subobject={{#subobject:- |isA=Action |Action name={{{name|}}} |Action servicetype={{{servicetype|}}} |Action service={{{service|}}} |Action inputtype={{{inputtype|}}} |Action input={{{input|}}} |Action actionpage={{{actionpage|}}} |Action output={{{output|}}} |Action engine={{{engine|}}} |Action author={{{author|}}} |Action since={{{since|}}} |Action comment={{{comment|}}} }} |{{#set: |isA=Action |Action name={{{name|}}} |Action servicetype={{{servicetype|}}} |Action service={{{service|}}} |Action inputtype={{{inputtype|}}} |Action input={{{input|}}} |Action actionpage={{{actionpage|}}} |Action output={{{output|}}} |Action engine={{{engine|}}} |Action author={{{author|}}} |Action since={{{since|}}} |Action comment={{{comment|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !name!!servicetype!!service!!inputtype!!input!!actionpage!!output!!engine!!author!!since!!comment {{!}}- |tablerow= {{!}}{{{name|}}}{{!}}{{!}}{{{servicetype|}}}{{!}}{{!}}{{{service|}}}{{!}}{{!}}{{{inputtype|}}}{{!}}{{!}}{{{input|}}}{{!}}{{!}}{{{actionpage|}}}{{!}}{{!}}{{{output|}}}{{!}}{{!}}{{{engine|}}}{{!}}{{!}}{{{author|}}}{{!}}{{!}}{{{since|}}}{{!}}{{!}}{{{comment|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>servicetype={{#if:{{{servicetype|}}}|{{{servicetype|}}}|}}<br>service={{#if:{{{service|}}}|{{{service|}}}|}}<br>inputtype={{#if:{{{inputtype|}}}|{{{inputtype|}}}|}}<br>input={{#if:{{{input|}}}|{{{input|}}}|}}<br>actionpage={{#if:{{{actionpage|}}}|[[{{{actionpage|}}}]]|}}<br>output={{#if:{{{output|}}}|{{{output|}}}|}}<br>engine={{#if:{{{engine|}}}|{{{engine|}}}|}}<br>author={{#if:{{{author|}}}|[[{{{author|}}}]]|}}<br>since={{#if:{{{since|}}}|{{{since|}}}|}}<br>comment={{#if:{{{comment|}}}|{{{comment|}}}|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Action {{!}}- {{#switch:{{{storemode|}}}|property= ! colspan='2' style='text-align:left' {{!}} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Action/{{FULLPAGENAME}}|title=edit}} {{!}}- }} !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- !servicetype {{!}}&nbsp;{{#if:{{{servicetype|}}}|{{{servicetype|}}}|}} {{!}}- !service {{!}}&nbsp;{{#if:{{{service|}}}|{{{service|}}}|}} {{!}}- !inputtype {{!}}&nbsp;{{#if:{{{inputtype|}}}|{{{inputtype|}}}|}} {{!}}- !input {{!}}&nbsp;{{#if:{{{input|}}}|{{{input|}}}|}} {{!}}- !actionpage {{!}}&nbsp;{{#if:{{{actionpage|}}}|[[{{{actionpage|}}}]]|}} {{!}}- !output {{!}}&nbsp;{{#if:{{{output|}}}|{{{output|}}}|}} {{!}}- !engine {{!}}&nbsp;{{#if:{{{engine|}}}|{{{engine|}}}|}} {{!}}- !author {{!}}&nbsp;{{#if:{{{author|}}}|[[{{{author|}}}]]|}} {{!}}- !since {{!}}&nbsp;{{#if:{{{since|}}}|{{{since|}}}|}} {{!}}- !comment {{!}}&nbsp;{{#if:{{{comment|}}}|{{{comment|}}}|}} {{!}}- {{!}}} }} }} </source> === Source === Click on "Edit" to edit the noinclude-part Source of this Template. [[Category:Template]] </noinclude><includeonly>{{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Action<br>|}} {{#if:{{{?name|}}}|"{{{?name}}}" is name of it <br>|}} {{#if:{{{?servicetype|}}}|"{{{?servicetype}}}" is servicetype of it <br>|}} {{#if:{{{?service|}}}|"{{{?service}}}" is service of it <br>|}} {{#if:{{{?inputtype|}}}|"{{{?inputtype}}}" is inputtype of it <br>|}} {{#if:{{{?input|}}}|"{{{?input}}}" is input of it <br>|}} {{#if:{{{?actionpage|}}}|"{{{?actionpage}}}" is actionpage of it <br>|}} {{#if:{{{?output|}}}|"{{{?output}}}" is output of it <br>|}} {{#if:{{{?engine|}}}|"{{{?engine}}}" is engine of it <br>|}} {{#if:{{{?author|}}}|"{{{?author}}}" is author of it <br>|}} {{#if:{{{?since|}}}|"{{{?since}}}" is since of it <br>|}} {{#if:{{{?comment|}}}|"{{{?comment}}}" is comment of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |subobject={{#subobject:- |isA=Action |Action name={{{name|}}} |Action servicetype={{{servicetype|}}} |Action service={{{service|}}} |Action inputtype={{{inputtype|}}} |Action input={{{input|}}} |Action actionpage={{{actionpage|}}} |Action output={{{output|}}} |Action engine={{{engine|}}} |Action author={{{author|}}} |Action since={{{since|}}} |Action comment={{{comment|}}} }} |{{#set: |isA=Action |Action name={{{name|}}} |Action servicetype={{{servicetype|}}} |Action service={{{service|}}} |Action inputtype={{{inputtype|}}} |Action input={{{input|}}} |Action actionpage={{{actionpage|}}} |Action output={{{output|}}} |Action engine={{{engine|}}} |Action author={{{author|}}} |Action since={{{since|}}} |Action comment={{{comment|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !name!!servicetype!!service!!inputtype!!input!!actionpage!!output!!engine!!author!!since!!comment {{!}}- |tablerow= {{!}}{{{name|}}}{{!}}{{!}}{{{servicetype|}}}{{!}}{{!}}{{{service|}}}{{!}}{{!}}{{{inputtype|}}}{{!}}{{!}}{{{input|}}}{{!}}{{!}}{{{actionpage|}}}{{!}}{{!}}{{{output|}}}{{!}}{{!}}{{{engine|}}}{{!}}{{!}}{{{author|}}}{{!}}{{!}}{{{since|}}}{{!}}{{!}}{{{comment|}}} {{!}}- |tablefooter={{!}}} |labelfield= name={{#if:{{{name|}}}|{{{name|}}}|}}<br>servicetype={{#if:{{{servicetype|}}}|{{{servicetype|}}}|}}<br>service={{#if:{{{service|}}}|{{{service|}}}|}}<br>inputtype={{#if:{{{inputtype|}}}|{{{inputtype|}}}|}}<br>input={{#if:{{{input|}}}|{{{input|}}}|}}<br>actionpage={{#if:{{{actionpage|}}}|[[{{{actionpage|}}}]]|}}<br>output={{#if:{{{output|}}}|{{{output|}}}|}}<br>engine={{#if:{{{engine|}}}|{{{engine|}}}|}}<br>author={{#if:{{{author|}}}|[[{{{author|}}}]]|}}<br>since={{#if:{{{since|}}}|{{{since|}}}|}}<br>comment={{#if:{{{comment|}}}|{{{comment|}}}|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Action {{!}}- {{#switch:{{{storemode|}}}|property= ! colspan='2' style='text-align:left' {{!}} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Action/{{FULLPAGENAME}}|title=edit}} {{!}}- }} !name {{!}}&nbsp;{{#if:{{{name|}}}|{{{name|}}}|}} {{!}}- !servicetype {{!}}&nbsp;{{#if:{{{servicetype|}}}|{{{servicetype|}}}|}} {{!}}- !service {{!}}&nbsp;{{#if:{{{service|}}}|{{{service|}}}|}} {{!}}- !inputtype {{!}}&nbsp;{{#if:{{{inputtype|}}}|{{{inputtype|}}}|}} {{!}}- !input {{!}}&nbsp;{{#if:{{{input|}}}|{{{input|}}}|}} {{!}}- !actionpage {{!}}&nbsp;{{#if:{{{actionpage|}}}|[[{{{actionpage|}}}]]|}} {{!}}- !output {{!}}&nbsp;{{#if:{{{output|}}}|{{{output|}}}|}} {{!}}- !engine {{!}}&nbsp;{{#if:{{{engine|}}}|{{{engine|}}}|}} {{!}}- !author {{!}}&nbsp;{{#if:{{{author|}}}|[[{{{author|}}}]]|}} {{!}}- !since {{!}}&nbsp;{{#if:{{{since|}}}|{{{since|}}}|}} {{!}}- !comment {{!}}&nbsp;{{#if:{{{comment|}}}|{{{comment|}}}|}} {{!}}- {{!}}} }} {{wikitask|cmd=login|input={{urlencode:{{#realname:Visitor}}}}}} {{wikitask|cmd=reset}} {{wikitask|cmd=runtemplate|engine={{{engine|}}}|input={{{input|}}}|template={{{actionpage|}}}|targetpage={{{output|}}}}} }} </includeonly> 6ecdcfa8cfea44dac3a3294979b12cd8b815e46e GenerateProperties 0 196 324 2016-02-17T08:25:23Z Wf 1 transfered by WikiBackup wikiTask at 2016-02-17T08:25:22Z wikitext text/x-wiki {{Action |name=GenerateProperties |servicetype=WikiTask |inputtype=Page |input={{FULLPAGENAME}}#sidif |actionpage={{FULLPAGENAME}}#template |output={{FULLPAGENAME}}#result |engine=rythm |author=Wf |since=2015/11/18 |comment=This saves a lot of work! |storemode=property }} __NOCACHE__ * {{Link|target=Concept:Action}} * {{Link|target=Template:Action}} * {{Link|target=Template:Wikitask}} = input = === sidif === <source lang='java' id='sidif'> Presentation isA Context "Presentation#sidif"is sidif of it Bigstock needs Properties </source> === Training sidif === <source lang='java' id='trainingsidif'> Training isA Context "Training#sidif"is sidif of it Quizkarte needs Properties </source> === Syllabus sidif === <source lang='java' id='syllabussidif'> Syllabus isA Context "Syllabus#sidif"is sidif of it LearningGoal needs Properties </source> === CRM Sidif === <source lang='java' id='crmsidif'> CRM isA Context "CRM#sidif"is sidif of it Organization needs Properties Person needs Properties Contact needs Properties SocialLink needs Properties </source> = template = <source lang='java' id='dialog'> @// This is a rythm template @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import org.sidif.wiki.SSLWiki @import com.bitplan.topic.ContextSetting.TripleStoreMode @import com.alibaba.fastjson.JSON @import com.bitplan.mediawiki.japi.MediawikiApi @import com.bitplan.mediawiki.japi.Mediawiki @import com.bitplan.mediawiki.japi.api.Api @include(wiki.SiDIFTemplates.propertiesdefs) @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @{ TripleQuery query=tripleStore.query(); TripleQuery needed=query.query(null,"needs","Properties"); Triple contextTriple=query.selectSingle(null,"isA","Context"); String contextName=contextTriple.getSubject().toString(); Triple sidifTriple=query.selectSingle(contextName,"sidif", null); String contextSidif=sidifTriple.getObject().toString(); // now get the context ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); contextSetting.setContextName(contextName); contextSetting.setSidifInput(contextSidif); contextSetting.setTripleStoreMode(TripleStoreMode.SiDIF); Context context = ContextFactory.getInstance().getContext(contextSetting); } @(wikiTask.getWiki().getIsoTimeStamp()) @(needed.size()) Topics need Properties to be generated @for (Triple neededTriple:needed.getTriples()) { @{ String topicName=neededTriple.getSubject().toString(); Topic topic=context.byName(topicName); } == Topic: @(topicName) == === properties of @(topic.name) === @for (Property property:topic.getProperties()) { ==== [[Property:@(topic.name) @(property.name)]] ==== @{ Throwable error=null; try { // get the Rythm template result org.rythmengine.utils.RawData pageContentRaw=property(topic,property); String pageContent=pageContentRaw.toString(); String pageTitle="Property:"+topic.name+" "+property.name; SSLWiki wiki=(SSLWiki)wikiTask.getWiki(); String currentContent=wiki.getPageContent(pageTitle); // if (currentContent==null || currentContent.length()==0) { String summary="generated by GenerateProperties at "+wiki.getIsoTimeStamp(); wiki.edit(pageTitle,pageContent,summary); // } } catch (Throwable th) { error=th; } } @if (error) { <span style='color:red'>Error: @(error.getMessage())</span> } <pre> @property(topic,property) </pre> } } </source> {{#default_form:Action}} = result = 2016-02-10T06:54:11Z 1 Topics need Properties to be generated == Topic: Bigstock == === properties of Bigstock === ==== [[Property:Bigstock id]] ==== <pre> {{Property |name=id |label=id |documentation=the id of the bigstock photo |type=Special:Types/Text |index=1 |sortPos= |primaryKey=true |mandatory=true |namespace= |size=8 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Bigstock |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Bigstock file]] ==== <pre> {{Property |name=file |label=file |documentation=the downloaded bigstock file - if it is downloaded a license has been paid for |type=Special:Types/Page |index=2 |sortPos= |primaryKey=false |mandatory=false |namespace=File |size=100 |uploadable=true |defaultValue= |inputType= |allowedValues= |values_from=namespace=File |showInGrid=false |isLink=false |topic=Concept:Bigstock |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> = Links = <headertabs/> 0a18c09150f5b3575cfa5d458743055618afdb84 File:Actionicon.png 6 197 325 2016-02-17T08:25:24Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Szenarien.pptx 6 198 327 2016-03-15T10:33:20Z Wf 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:File graph GraphVizExtensionDummy dot.svg 6 199 328 2017-01-15T06:55:52Z Wf 1 generated by the GraphViz [[Special:Version#Installed_extensions|extension]] from the [[File]] page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 330 328 2017-01-15T07:34:02Z 163.172.65.119 0 generated by the GraphViz [[Special:Version#Installed_extensions|extension]] from the [[File:File graph GraphVizExtensionDummy dot.svg]] page wikitext text/x-wiki [[Category:GraphViz]][[Category:GraphViz dot]] d1f9cf68e993d59c3c9ce3627f507a743ad6138b MediaWiki:Sidebar 8 200 329 2017-01-15T06:55:52Z Wf 1 Created page with "* navigation ** mainpage|mainpage-description * BITPlan partner site ** Special:Categories|Browse categories ** recentchanges-url|recentchanges ** Special:ListFiles|Browse fil..." wikitext text/x-wiki * navigation ** mainpage|mainpage-description * BITPlan partner site ** Special:Categories|Browse categories ** recentchanges-url|recentchanges ** Special:ListFiles|Browse files ** randompage-url|randompage * Help ** helppage|help * SEARCH * TOOLBOX * LANGUAGES 3b22af754c6cb8e656cadea0320aa9ea51747b28 MediaWiki:Smw import skos 8 201 331 2017-10-28T17:43:40Z 127.0.0.1 0 Semantic MediaWiki default vocabulary import wikitext text/x-wiki http://www.w3.org/2004/02/skos/core#|[http://www.w3.org/TR/skos-reference/skos.rdf Simple Knowledge Organization System (SKOS)] altLabel|Type:Monolingual text broader|Type:Annotation URI broaderTransitive|Type:Annotation URI broadMatch|Type:Annotation URI changeNote|Type:Text closeMatch|Type:Annotation URI Collection|Class Concept|Class ConceptScheme|Class definition|Type:Text editorialNote|Type:Text exactMatch|Type:Annotation URI example|Type:Text hasTopConcept|Type:Page hiddenLabel|Type:String historyNote|Type:Text inScheme|Type:Page mappingRelation|Type:Page member|Type:Page memberList|Type:Page narrower|Type:Annotation URI narrowerTransitive|Type:Annotation URI narrowMatch|Type:Annotation URI notation|Type:Text note|Type:Text OrderedCollection|Class prefLabel|Type:String related|Type:Annotation URI relatedMatch|Type:Annotation URI scopeNote|Type:Text semanticRelation|Type:Page topConceptOf|Type:Page [[Category:Imported vocabulary]] 4327e3118f75f756b955108e04693a361d19c2cb MediaWiki:Smw import foaf 8 202 332 2017-10-28T17:43:40Z 127.0.0.1 0 Semantic MediaWiki default vocabulary import wikitext text/x-wiki http://xmlns.com/foaf/0.1/|[http://www.foaf-project.org/ Friend Of A Friend] name|Type:Text homepage|Type:URL mbox|Type:Email mbox_sha1sum|Type:Text depiction|Type:URL phone|Type:Text Person|Category Organization|Category knows|Type:Page member|Type:Page [[Category:Imported vocabulary]] 2be18fc91e334e0c7f23bea734cdc2a301fd86e8 MediaWiki:Smw import owl 8 203 333 2017-10-28T17:43:40Z 127.0.0.1 0 Semantic MediaWiki default vocabulary import wikitext text/x-wiki http://www.w3.org/2002/07/owl#|[http://www.w3.org/2002/07/owl Web Ontology Language (OWL)] AllDifferent|Category allValuesFrom|Type:Page AnnotationProperty|Category backwardCompatibleWith|Type:Page cardinality|Type:Number Class|Category comment|Type:Page complementOf|Type:Page DataRange|Category DatatypeProperty|Category DeprecatedClass|Category DeprecatedProperty|Category differentFrom|Type:Page disjointWith|Type:Page distinctMembers|Type:Page equivalentClass|Type:Page equivalentProperty|Type:Page FunctionalProperty|Category hasValue|Type:Page imports|Type:Page incompatibleWith|Type:Page intersectionOf|Type:Page InverseFunctionalProperty|Category inverseOf|Type:Page isDefinedBy|Type:Page label|Type:Page maxCardinality|Type:Number minCardinality|Type:Number Nothing|Category ObjectProperty|Category oneOf|Type:Page onProperty|Type:Page Ontology|Category OntologyProperty|Category owl|Type:Page priorVersion|Type:Page Restriction|Category sameAs|Type:Page seeAlso|Type:Page someValuesFrom|Type:Page SymmetricProperty|Category Thing|Category TransitiveProperty|Category unionOf|Type:Page versionInfo|Type:Page [[Category:Imported vocabulary]] c109cc4c667590611dc35b3d06655129c572809a Property:Foaf:knows 102 204 334 2017-10-28T17:43:40Z 127.0.0.1 0 Semantic MediaWiki default vocabulary import wikitext text/x-wiki * [[Imported from::foaf:knows]] * [[Has property description::A person known by this person (indicating some level of reciprocated interaction between the parties).@en]] [[Category:Imported vocabulary]] {{DISPLAYTITLE:foaf:knows}} 2e89ed95e185b4c58a7a5447384e5849a1e3c7f3 Property:Foaf:name 102 205 335 2017-10-28T17:43:40Z 127.0.0.1 0 Semantic MediaWiki default vocabulary import wikitext text/x-wiki * [[Imported from::foaf:name]] * [[Has property description::A name for some thing or agent.@en]] [[Category:Imported vocabulary]]{{DISPLAYTITLE:foaf:name}} c7ea16f5cc0a25bd5d35c418f8590635e1a59104 Property:Foaf:homepage 102 206 336 2017-10-28T17:43:40Z 127.0.0.1 0 Semantic MediaWiki default vocabulary import wikitext text/x-wiki * [[Imported from::foaf:homepage]] * [[Has property description::URL of the homepage of something, which is a general web resource.@en]] [[Category:Imported vocabulary]] {{DISPLAYTITLE:foaf:homepage}} 196c572bc4f2be88cd6d3ed8d07b37fa1549930b Property:Owl:differentFrom 102 207 337 2017-10-28T17:43:40Z 127.0.0.1 0 Semantic MediaWiki default vocabulary import wikitext text/x-wiki * [[Imported from::owl:differentFrom]] * [[Has property description::The property that determines that two given individuals are different.@en]] [[Category:Imported vocabulary]] {{DISPLAYTITLE:owl:differentFrom}} 1c0d6ecdafcfea48f8f2200a81155a64419fa055 SMW Types 0 30 338 68 2017-11-05T18:05:05Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:04Z wikitext text/x-wiki =SMW_Type= {{SMW Type |type=Annotation URI |documentation=Holds URIs, but has some technical differences during export compared to the 'URL' type |id=_anu |helppage=https://semantic-mediawiki.org/wiki/Help:Annotation_URI |typepage=Special:Types/Annotation_URI |storemode=subobject }} {{SMW Type |type=Boolean |documentation=Holds boolean (true/false) values |id=_boo |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Boolean |typepage=Special:Types/Boolean |javaType=boolean |storemode=subobject }} {{SMW Type |type=Code |documentation=Holds technical, pre-formatted texts (similar to type Text) |id=_cod |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Code |typepage=Special:Types/Code |javaType=String |storemode=subobject }} {{SMW Type |type=Date |documentation=Holds particular points in time |id=_dat |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Date |typepage=Special:Types/Date |javaType=java.util.Date |storemode=subobject }} {{SMW Type |type=Email |documentation=Holds e-mail addresses |id=_ema |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Email |typepage=Special:Types/Email |storemode=subobject }} {{SMW Type |type=External identifier |documentation=Holds a value that associates it with with a external URI for formatting |id=_eid |helppage=https://www.semantic-mediawiki.org/wiki/Help:Type_External_identifier |typepage=Special:Types/External_identifier |storemode=subobject }} {{SMW Type |type=Geographic coordinate |documentation=Holds coordinates describing geographic locations |id=_geo |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Geographic_coordinate |typepage=Special:Types/Geographic_coordinate |storemode=subobject }} {{SMW Type |type=Monolingual text |documentation=Holds a text value that associates the annotation with a specific language code |id=_mlt_rec |helppage=https://www.semantic-mediawiki.org/wiki/Help:Type_Monolingual_text |typepage=Special:Types/Monolingual text |storemode=subobject }} {{SMW Type |type=Number |documentation=Holds integer and decimal numbers, with an optional exponent |id=_num |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Number |typepage=Special:Types/Number |storemode=subobject }} {{SMW Type |type=Page |documentation=Holds names of wiki pages, and displays them as a link |id=_wpg |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Page |typepage=Special:Types/Page |storemode=subobject }} {{SMW Type |type=Quantity |documentation=Holds values that describe quantities, containing both a number and a unit |id=_qty |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Quantity |typepage=Special:Types/Quantity |storemode=subobject }} {{SMW Type |type=Record |documentation=Allows saving compound property values that consist of a short list of values with fixed type and order |id=_rec |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Record |typepage=Special:Types/Record |storemode=subobject }} {{SMW Type |type=Telephone number |documentation=Holds international telephone numbers based on the [https://tools.ietf.org/html/rfc3966 RFC 3966 standard] |id=_tel |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Telephone_number |typepage=Special:Types/Telephone_number |storemode=subobject }} {{SMW Type |type=Temperature |documentation=Holds temperature values (similar to type Quantity) |id=_tem |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Temperature |typepage=Special:Types/Temperature |storemode=subobject }} {{SMW Type |type=Reference |documentation=Holds a value that associates it to individual defined provenance metadata record |id=_ref_rec |helppage=https://www.semantic-mediawiki.org/wiki/Help:Type_Reference |typepage=Special:Types/Reference |storemode=subobject }} {{SMW Type |type=Text |documentation=Holds text of arbitrary length |id=_txt |helppage=https://semantic-mediawiki.org/wiki/Help:Type_Text |typepage=Special:Types/Text |javaType=String |storemode=subobject }} {{SMW Type |type=URL |documentation=Holds URIs, URNs and URLs |id=_uri |helppage=https://semantic-mediawiki.org/wiki/Help:Type_URL |typepage=Special:Types/URL |javaType=java.net.URI |storemode=subobject }} =Freitext= {{#default_form:SMW_Type}} [[Category:SMW_Type]] 909a8e5b3000ddd17c4d349c20327047257fe429 SiDIFTemplates 0 31 339 282 2017-11-05T18:05:10Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:06Z wikitext text/x-wiki __TOC__ == Overview == This page contains {{sidif}} templates. These templates can be used as a template for a {{Link|target=Template:Wikitask}}. For convenience there is a template {{Link|target=Template:TopicWikitasks}} that creates a set of wikitasks for some of the templates below. == Templates == === category === <source lang='java' id='category' cache='true'> @include(wiki.SiDIFTemplates.defs) @// macro to create pageschema from simela triples @def pageschema(Topic topic) { @escape("xml") { <PageSchema> <semanticforms_Form name="@topic.name"> <standardInputs freeTextLabel="Free text"/> </semanticforms_Form> <Template name="@topic.name" format="standard"> @for (Property property:topic.propertiesByIndex()) { <Field name="@property.name"> <semanticforms_FormInput> <InputType>text</InputType> </semanticforms_FormInput> <semanticmediawiki_Property name="@(topic.name) @(property.name)"> <Type>Text</Type> </semanticmediawiki_Property> </Field> } </Template> </PageSchema> } } @// generate the category for the given topic @def category(Topic topic) { __NOTOC__ @// show the wikiDocumentation for this category {{#ask: [[Topic name::@(topic.name)]] | ?Topic wikiDocumentation= | mainlabel=-}} @(topic.pluralName) may be added and edited with the form [[Form:@(topic.name)]] * [[List of @(topic.pluralName)]] <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> @topic.name @(i18n("description")) <div class="mw-collapsible-content"> @uml("uml",topic) * [[Help:@topic.name]] * [[Concept:@topic.name]] * [[:Template:@topic.name]] * [[:Form:@topic.name]] === Properties === @for (Property property:topic.propertiesByIndex()) { * [[Property:@(topic.name) @(property.name)]] } </div> </div> } @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @category(contextSetting.getMaintopic()) </source> === listof === <source lang='java' id='listof' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the list of page for the given topic @def listof(Topic topic) { __NOCACHE__ @topicheader(topic) == @topic.pluralName == {{#forminput:form=@topic.name|button text=add @topic.name}} @("{{")#ask: [[Concept:@topic.name]] |mainlabel=@(topic.name) @for (Property property:topic.propertiesByIndex()) { | ?@topic.name @(property.name) = @property.name } @askSort(topic) @("}}") <div class="toccolours mw-collapsible mw-collapsed" style="width:1024px"> === SiDIF === <div class="mw-collapsible-content"> @("{{")#ask: [[Concept:@topic.name]] | ?#=pageid @for (Property property:topic.propertiesByIndex()) { | ?@topic.name @property.name = @property.name } | mainlabel=- | format=template | named args=yes | template=@topic.name | userparam=sidif | limit=@topic.listLimit @("}}") </div> </div> [[:Category:@topic.name]] } @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @listof(contextSetting.getMaintopic()) </source> === concept === <source lang='java' id='concept' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate the given topic as a concept @def topic(Topic topic) { __NOCACHE__ @("{{")Topic |name=@topic.name |pluralName=@if (topic.pluralName) {@(topic.pluralName)} else { @(topic.name)s } |icon=@topic.icon |iconUrl=@topic.iconUrl |documentation=@topic.documentation |wikiDocumentation=@topic.wikiDocumentation |defaultstoremode=@topic.defaultstoremode |listLimit=@topic.listLimit |cargo=@topic.cargo |context=@topic.context |storemode=property @("}}") @("{{")Topic |viewmode=masterdetail |storemode=none @("}}") {{#forminput:form=Property|button text=add Property}} === Documentation === @topic.wikiDocumentation @uml("uml",topic) @("{{")#concept: @if (topic.conceptProperty) { [[@(topic.name) @(topic.conceptProperty.name)::+]] } else { [[Category:@topic.name]] } |@(topic.pluralName) @seealso(topic) @("}}") [[Category:@topic.name]] } @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @topic(contextSetting.getMaintopic()) </source> === propertiesdefs === <source lang='java' id='propertiesdefs' cache='true'> @include(wiki.SiDIFTemplates.defs) @// properties for a specific Topic @def property(Topic topic, Property property) { @{ String topicWithConcept=topic.pageid; if (topicWithConcept.startsWith("Konzept:")) { topicWithConcept=topicWithConcept.replace("Konzept:","Concept:"); } if (!topicWithConcept.startsWith("Concept:")) { topicWithConcept="Concept:"+topicWithConcept; } } @("{{")Property |name=@property.name |label=@property.label |documentation=@property.documentation |type=Special:Types/@property.type |index=@property.index |sortPos=@property.sortPos |primaryKey=@property.primaryKey |mandatory=@property.mandatory |namespace=@property.namespace |size=@property.size |uploadable=@property.uploadable |defaultValue=@property.defaultValue |inputType=@property.inputType |allowedValues=@property.allowedValues |values_from=@property.values_from |showInGrid=@property.showInGrid |isLink=@property.isLink |topic=@(topicWithConcept) |storemode=property @("}}") [[Has type::@property.type]] This is a Property with type @("{{#show: {{FULLPAGENAMEE}} | ?Property type#- }}") } @// properties for the given topic @def properties(Topic topic) { == properties of @(topic.name) == @for (Property property:topic.getProperties()) { === [[Property:@(topic.name) @(property.name)]] === <pre> @(property(topic,property)) </pre> } } </source> === properties === <source lang='java' id='properties' cache='true'> @include(wiki.SiDIFTemplates.propertiesdefs) @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @properties(contextSetting.getMaintopic()) </source> === instances === <source lang='java' id='instances' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @// here some java code is declared and executed @// the resulting variables can be used as template variables later @{ TripleQuery query=tripleStore.query(); TripleQuery topics=query.query(null,"isA","Topic"); String maintopic=wikiTask.getParams(); } @def wikison(TripleQuery query,String topicName, String name) { @("{{")@topicName @{ TripleQuery properties=query.query(name,null,null) } |name=@name @for (Triple property:properties.getTriples()) { |@property.getPredicate()=@property.getObject() } |storeMode=subobject @("}}") } @def wikison1toN(TripleQuery query,String topicName,String link,String linkTopicName) { @{TripleQuery instances=query.query(null,"isA",topicName) } @for (Triple instance:instances.getTriples()) { @wikison(query,topicName,instance.getSubject().toString()) @{TripleQuery linstances=query.query(null,link,instance.getSubject().toString()) } @for (Triple linstance:linstances.getTriples()) { @wikison(query,linkTopicName,linstance.getSubject().toString()) } } } @wikison1toN(query,maintopic,"answer","ZAnswer") [[Category:@maintopic]] </source> === form === <source lang='java' id='form' cache='true'> @include(wiki.SiDIFTemplates.defs) @// generate a level 1 section to use the headertabs feature @def headerTabSection(Topic masterTopic,String title) { @if (masterTopic.withHeaderTabs()) { @("{{{section")|@(title)|level=1|hidden@("}}}") = @(title) = } } @// get the multiple String @// generate the form for the given topic @def form(Topic topic) { <noinclude> This is the @("{{smartMediaWiki}}")-Form for "@(topic.name)". Create a new @(topic.name) by entering a new pagename for a @(topic.name) into the field below. If you enter an existing @(topic.name) pagename - you will edit the @(topic.name) with that pagename. @("{{")#forminput:form=@(topic.name)|values from concept=@(topic.name)@("}}") </noinclude><includeonly> <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> @headerTabSection(topic,topic.name) @formtemplate(topic,"subobject".equals(topic.defaultstoremode)) @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @if ((topicLink.targetTopic!=null) && ("true".equals(topicLink.targetMultiple))) { @headerTabSection(topic,topicLink.targetRole) @formtemplate(topicLink.targetTopic,"true".equals(topicLink.targetMultiple)) } } @if (topic.withHeaderTabs()) { <headertabs/> } @("{{{section|Freitext|level=1|hidden}}}") =Freitext= @("{{{standard input|free text|rows=10}}}") @("{{{standard input|summary}}}") @("{{{standard input|changes}}}") @("{{{standard input|save}}}") @("{{{standard input|cancel}}}") </includeonly> }@// avoid newline @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @form(contextSetting.getMaintopic()) </source> === template === <source lang='java' id='template' cache='true'> @include(wiki.SiDIFTemplates.defs) @// show the given property Label @def String propertyLabel(Property property) { if ((property.label!=null) && (!"".equals(property.label.trim()))) {return property.label;} else {return property.name;} } @// show the given Property @def showProperty(Property property) { @{ String linkPre=""; String linkPost=""; String namespace=""; if ((property.type!=null) && (property.type.endsWith("Page"))) { linkPre="[[";linkPost="]]";} // do not do namespace handling at this time // use map namespace from mediawik-japi! // if (property.namespace!=null) { namespace=property.namespace+":";} }@{{#if:{{{@(property.name)|}}}|@(linkPre)@(namespace)@("{{{")@(property.name)@("|}}}")@(linkPost)|}} } @// set the given Property @def setProperty(Property property){ @(property.name)=@("{{{")@(property.name)|@("}}}") } @// sidif - newline relevant @def sidif(Topic topic) { @("{{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}}") isA @(topic.name)<br>@("|}}")@for (Property property:topic.propertiesByIndex()){@// avoid newline @("{{#if:{{{")?@(property.name)@("|}}}|")"@("{{{")?@(property.name)@("}}}")" is @property.name of it <br>|@("}}")} } @// includeonly part of wiki template @def includeonly(Topic topic, boolean withComment) { @("{{#switch:"){{{userparam|}}}|sidif=@sidif(topic) |#default=@("{{#switch:"){{{storemode|}}} |none= |subobject=@("{{#subobject:-") |isA=@(topic.name) @for (Property property:topic.propertiesByIndex()) { |@(topic.name) @setProperty(property) } @("}}")@//#subobject |#default=@("{{#set:") |isA=@(topic.name) @for (Property property:topic.propertiesByIndex()) { |@topic.name @setProperty(property) } @("}}")@//#set @("}}")@//#switch @("{{#switch:") {{{viewmode|}}} |masterdetail= @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @if (topicLink.targetTopic) { = @(topicLink.targetRole) = @("{{")#ask:[[Concept:@(topicLink.targetTopic.name)]][[@(topicLink.targetTopic.name) @(topicLink.sourceRole)::@("{{FULLPAGENAME}}")]] @for (Property property:topicLink.targetTopic.propertiesByIndex()) { | ?@(topicLink.targetTopic.name) @property.name = @property.name } @askSort(topicLink.targetTopic) @("}}") } } |tableheader=@("{{{!}}") class='wikitable' @{String delim="!";} @for (Property property:topic.propertiesByIndex()) {@(delim)@(property.name)@{delim="!!";}} @("\n{{!}}-") |tablerow= @{delim="{{!}}"} @for (Property property:topic.propertiesByIndex()) {@(delim){{{@(property.name)|}}}@{delim="{{!}}{{!}}"}} @("\n{{!}}-") |tablefooter=@("{{!}}}") |labelfield= @for (Property property:topic.propertiesByIndex()) {@(property.name)=@(showProperty(property))<br>} |#default=@("{{{!}}") class='wikitable' ! colspan='2' @("{{!}}")@(topic.name) @("{{!}}-") @("{{#switch:"){{{storemode|}}}|property= ! colspan='2' style='text-align:left' {{!}} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/@(topic.name)/{{FULLPAGENAME}}|title=edit}} @("{{!}}-") @("}}") @for (Property property:topic.propertiesByIndex()) {@("!")@(propertyLabel(property)) @("{{!}}")&nbsp;@(showProperty(property)) @("{{!}}")- } @("{{!}}}") @("}}")@//#switch @("}}")@//#switch @// do not add subobjects to category - this would make selecting the default form difficult @if ("property".equals(topic.defaultstoremode)) { [[Category:@(topic.name)]]@("{{#default_form:")@(topic.name)@("}}") } } @// wikiSonUsage @def wikiSonUsage(Topic topic,String modeLine) { <pre>@("{{")@topic.name @for (Property property:topic.propertiesByIndex()) { |@property.name= } |@modeLine @("}}") </pre> }@// avoid newline @// noinclude part of wiki template @def noinclude(Topic topic) { This is the template {{Link|target=Template:@topic.name|title=@topic.name}}. It belongs to the concept/topic {{Link|target=:Concept:@topic.name}}<br> You may find examples for the use of this template via the {{Link|target=List of @(topic.pluralName)}}. === Usage === @{ String[] storeModes={"subobject","property","none"};} @for (String storeMode:storeModes) { ==== storemode @storeMode ==== @wikiSonUsage(topic,"storemode="+storeMode) } @{ String[] viewModes={"tableheader","tablerow","tablefooter","labelfield"};} @for (String viewMode:viewModes) { ==== viewmode @viewMode ==== @wikiSonUsage(topic,"viewmode="+viewMode) } === Source (pretty printed) === @("<source") lang='html4strict'> @includeonly(topic,true) @("<")@("/source>") === Source === Click on "Edit" to edit the noinclude-part Source of this Template. [[Category:Template]] }@// avoid newline @def template(Topic maintopic) {<noinclude> @copyright() @noinclude(maintopic) </noinclude><includeonly>@includeonly(maintopic,false)</includeonly>}@// avoid newline @// contextSetting handling @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @template(contextSetting.getMaintopic()) </source> === javacodegen === <source lang='java' id='javacodegen' cache='true'> @include(wiki.SiDIFTemplates.defs) === java code === @("<source lang='java' id='javacode'>") @verbatim() { @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import com.alibaba.fastjson.JSON @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } } @// user code section @// smartGenerator compatible like: @// // >>>{User defined import section}{::com::bitplan::ooa::OOAAssociation}{S37C96C0C016C} @def printUserCode(String codetype,String key,String modelID) { // >>>@("{")@(codetype)@("}")@("{")@(key)@("}")@("{")@(modelID)@("}") // <<<@("{")@(codetype)@("}")@("{")@(key)@("}")@("{")@(modelID)@("}") } @// first character to Upper @def String firstToUpper(String string) { StringBuffer sb = new StringBuffer(string); sb.replace(0, 1, string.substring(0, 1).toUpperCase()); return sb.toString(); } @// generate javacode for the given topic @def javacode(Context context) { @("@def static {") /** * Base class */ static abstract class TopicBase { // each Topic has a pageid - for non subobject thats the pagename public String pageid; /** * get a WikiSon version of the given name value * * @@param name * @@param value * @@return - the string representation */ public String toWikiSon(String name, String value) { String result = "<!-- " + name + " is null-->\n"; if (value != null) result = "|" + name + "=" + value + "\n"; return result; } /** * get the SiDIF representation of the given property * * @@param name - the name of the property * @@param value - the value of the property * @@param type - the type of the property * @@return - the SiDIF Sting representation of the property */ public static String propertySiDIF(String name, String value, String type) { // default is a comment line which can be filled by uncommenting String result = String.format("# is is %s of it\n",name);; // if the value is not empty if ((value != null) && (!("".equals(value.trim())))) { // do we need to quote the result? String quote = ""; // this depends on the Type if ("Text".equals(type)) { quote = "\""; } // create a SIDIF Property line like // "John" is lastname of it // convert double quotes to single quotes - FIXME - should we escape instead? value=value.replace("\"","'"); result = String.format("%s%s%s is %s of it\n",quote,value,quote,name); } // return the SiDIF property line return result; } /** * get me as a String * * @@param name * @@param value * @@return */ public static String propertySiDIF(String name, String value) { String result = propertySiDIF(name, value, "Text"); return result; } /** * check if the given boolean String value is true * * @@param value * @@return true if the value is not null and has true/TRUE as it's string * content */ public boolean isTrue(String value) { boolean result = false; if (value != null && value.toLowerCase().equals("true")) { result = true; } return result; } /** * initialize */ public void init(TripleQuery query) { } } // TopicBase @for(Topic topic:context.getTopics()) { /** * @topic.name * @topic.documentation */ public static class @topic.name extends TopicBase @("{") @for(Property property:topic.getProperties()) { public String @property.name; } @for(Property property:topic.getProperties()) { public String get@(firstToUpper(property.name))() { return @property.name; } public void set@(firstToUpper(property.name))(String p@(firstToUpper(property.name))) { @property.name=p@(firstToUpper(property.name)); } } /** * convert this @topic.name to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * convert this @topic.name to a WikiSon string * @@return the WikiSon representation of this @(topic.name) */ public String toWikiSon() { String wikison= "{{@topic.name\n"; @for(Property property:topic.getProperties()) { wikison+=toWikiSon("@property.name",@property.name); } wikison+="}}\n"; return wikison; } /** * convert this @topic.name to a SiDIF string * @@return the SiDIF representation of this @(topic.name) */ public String toSiDIF() { String siDIF = String.format("%s isA @(topic.name)\n",this.pageid); @for(Property property:topic.getProperties()) { siDIF+=propertySiDIF("@(property.name)",@(property.name),"@(property.type)"); } return siDIF; } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for @topic.name */ public @(topic.name)() {} /** * construct a @topic.name from the given Triple * @("@")param query - the TripleQuery to get the triples from * @("@")param p@(topic.name)Triple - the triple to construct me from */ public @(topic.name)(TripleQuery query,Triple p@(topic.name)Triple) @("{") this(query,p@(topic.name)Triple.getSubject().toString()); @("} // constructor") /** * construct a @topic.name from the given pageId * @("@")param query - the TripleQuery to get the triples from * @("@")param pageid - pageid */ public @(topic.name)(TripleQuery query,String pageid) @("{") this.pageid=pageid; @for(Property property:topic.getProperties()) { Triple @(property.name)Triple=query.selectSingle(pageid,"@property.name",null); if (@(property.name)Triple==null) @(property.name)Triple=query.selectSingle(pageid,"Property:@(topic.name)_@property.name",null); if (@(property.name)Triple!=null) @(property.name)=@(property.name)Triple.getObject().toString(); } init(query); @("}") // constructor for @topic.name @printUserCode("user defined topic code",topic.name,topic.name) @("}") // class @topic.name /** * Manager for @topic.name */ public static class @(topic.name)Manager extends TopicBase @("{") public String topicName="@(topic.name)"; public transient List<@topic.name> m@(topic.name)s=new ArrayList<@(topic.name)>(); public transient Map<String,@topic.name> m@(topic.name)Map=new LinkedHashMap<String,@(topic.name)>(); /** * get my @(topic.pluralName) */ public List<@topic.name> get@(topic.pluralName)() { List<@topic.name> result=this.m@(topic.name)s; return result; } /** * add a new @(topic.name) */ public @(topic.name) add(@(topic.name) p@(topic.name)) { m@(topic.name)s.add(p@(topic.name)); m@(topic.name)Map.put(p@(topic.name).getPageid(),p@(topic.name)); return p@(topic.name); } /** * add a new @(topic.name) from the given triple */ public @(topic.name) add(TripleQuery query,Triple p@(topic.name)Triple) { @topic.name l@topic.name=new @(topic.name)(query,p@(topic.name)Triple); add(l@(topic.name)); return l@(topic.name); } // reinitialize my m@(topic.name) map public void reinit() { m@(topic.name)Map.clear(); for (@(topic.name) l@(topic.name):m@(topic.name)s) { m@(topic.name)Map.put(l@(topic.name).getPageid(),l@(topic.name)); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static @(topic.name)Manager fromJson(String json) { @(topic.name)Manager result=JSON.parseObject(json, @(topic.name)Manager.class); result.reinit(); return result; } // default constructor for @(topic.name) Manager public @(topic.name)Manager() {} // add @(topic.pluralName) from the given query public void add@(topic.pluralName)(TripleQuery p@(topic.name)Query,TripleQuery query) { if (p@(topic.name)Query!=null) { for (Triple l@(topic.name)Triple:p@(topic.name)Query.getTriples()) { add(query,l@(topic.name)Triple); } } } // construct me from the given triple Query query public @(topic.name)Manager(TripleQuery query) @("{") // first query the SiDIF bases triplestore TripleQuery l@(topic.name)Query=query.query(null,"isA","@topic.name"); add@(topic.pluralName)(l@(topic.name)Query,query); // then the SMW triplestore l@(topic.name)Query=query.query(null,"Property:IsA","@topic.name"); add@(topic.pluralName)(l@(topic.name)Query,query); init(query); @("}") // constructor for @topic.name Manager @printUserCode("user defined topicmanager code",topic.name,topic.name) @("}") // class @topic.name Manager } @// end static @("}") } @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); Context context=ContextFactory.getInstance().getContext(contextSetting); } @javacode(context) @("<")@("/source>") </source> === help === <source lang='java' id='help'> @include(wiki.SiDIFTemplates.defs) @def help(Topic topic) { [[File:Help_Icon.png|right]] == Help for @(topic.name) == @topicheader(topic) === Documentation === @topic.wikiDocumentation === Example @(topic.pluralName) === {{#ask: [[Concept:@(topic.name)]] }} === Properties === {{#ask: [[Concept:Property]][[Property topic::Concept:@(topic.name)]] | ?Property documentation = documentation | ?Property type = type | ?Property name = name | ?Property label = label | ?Property allowedValues = allowedValues | ?Property mandatory = mandatory | ?Property uploadable = uploadable |format=table }} @uml("uml",topic) @seealso(topic) [[Category:@topic.name]] } @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @help(contextSetting.getMaintopic()) </source> === debug === <source lang='java' id='debug'> @include(wiki.SiDIFTemplates.java) @for (Topic topic:mTopicManager.mTopics) { == @(topic.pageid) == === Concept property === @if (topic.conceptProperty) { * @topic.conceptProperty.pageid name=@topic.conceptProperty.name } @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { === source TopicLink @(topicLink.name) === * @topicLink.sourceMultiple @topicLink.source @(topicLink.sourceRole) * @topicLink.targetMultiple @topicLink.target @(topicLink.targetRole) } @for (TopicLink topicLink:topic.targetTopicLinks.mTopicLinks) { === target TopicLink @(topicLink.name) === * @topicLink.sourceMultiple @topicLink.source @(topicLink.sourceRole) * @topicLink.targetMultiple @topicLink.target @(topicLink.targetRole) } @for (Property property:topic.getProperties()) { === Property @(property.name) === <pre> [[Has type::@property.type]] @("{{")Property |name=@property.name |documentation=@property.documentation |type=Special:Types/@property.type |label=@property.label |primaryKey=@property.primaryKey |mandatory=@property.mandatory |uploadable=@property.uploadable |size=@property.size |defaultValue=@property.defaultValue |inputType=@property.inputType |allowedValues=@property.allowedValues |topic=Concept:@topic.pageid @("}}") This is a Property with type @("{{#show: {{FULLPAGENAMEE}} | ?Property type#- }}") </pre> } } </source> === tripletable === <source lang='java' id='tripletable' cache='true'> @include(wiki.SiDIFTemplates.java) @// macro to show a table of triples @def tripletable(String title,List<org.sidif.triple.Triple> triples) { === @title === {| class="wikitable sortable" ! subject !! predicate !! object |- @for (org.sidif.triple.Triple triple:triples) { |@triple.getSubject() || @triple.getPredicate() || @triple.getObject() |- } |} } @// FIXME - will given compile error in java debug mode as of 2016-11-18 @//@tripletable("all triples",query.getTriples()) @//@tripletable("topics",topics.getTriples()) </source> === defs === <source lang='java' id='defs' cache='true'> @include(wiki.SiDIFTemplates.java) @// macro to show BITPlan copyright @def copyright() {<!-- -- Copyright (C) 2015-2017 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- -->@// avoid newline } @// error handling - get a stack trace @def String getStackTrace (Throwable t) { StringWriter sw = new StringWriter(); t.printStackTrace(new PrintWriter(sw)); return sw.toString(); } @// macro to to internationalize generator results @def String i18n(String text) { String targetLang=wikiTask.getWiki().getSiteInfo().getLang(); return text; } @// macro for the topic header of a topic @def topicheader(Topic topic) { {{#ask: [[Topic name::@(topic.name)]] |mainlabel=- |?Topic icon = icon |? = Topic |?Topic name = name |?Topic pluralName = pluralName |?Topic documentation = documentation }} } @//prepare the sort part of ask @def askSort(Topic topic) { @{ List<Property> sortProperties=topic.sortProperties(); String sort=""; String order=""; String delim=""; for (Property property:sortProperties) { String direction; if (property.sortAscending()) { direction="ascending"; } else { direction="descending"; } sort=sort+delim+topic.name+" "+property.name; order=order+delim+direction; delim=","; } } @if(sort) { |sort=@sort } @if(order) { |order=@order } } @// macro for the form template of a topic @def formtemplate(Topic topic,boolean isMultiple) { @{ String multiple=""; if (isMultiple) { multiple="|multiple"; } } <!-- @(topic.name) --> @("{{{")for template|@(topic.name)@(multiple)@("}}}") @("{|") class="wikitable" ! colspan='2'| @topic.name |- @for (Property property:topic.propertiesByIndex()) { ! @property.label: <!-- @property.type @property.name --> @{ String allowedValues=""; if (property.allowedValues!=null) { allowedValues="|values="+property.allowedValues; } String mandatory=""; if ("true".equals(property.mandatory)) { mandatory="|mandatory"; } String uploadable=""; if ("true".equals(property.uploadable)) { uploadable="|uploadable"; } String values_from=""; if (property.values_from!=null) { values_from="|values from "+property.values_from; } String defaultValue=""; if (property.defaultValue!=null) { defaultValue="|default="+property.defaultValue; } String size=""; if (property.size!=null) { size="|size="+property.size; } String inputtype=""; if (property.inputType!=null) { inputtype="|input type="+property.inputType; } if ("textarea".equals(property.inputType)) { inputtype+="|editor=wikieditor"; } } | @("{{{")field|@(property.name)|property=@(topic.name) @(property.name)@(inputtype)@(size)@(mandatory)@(uploadable)@(values_from)@(allowedValues)@(defaultValue)@("}}}") |- } @("|}") @("{{{")field|storemode|default=@(topic.defaultstoremode)|hidden@("}}}") @("{{{end template}}}") <!-- @(topic.name) --> } @// macro to to show relevant links for a topic @def seealso(Topic topic) { see also * [[List of @(topic.pluralName)]] * [[Help:@topic.name]] * [[Concept:@topic.name]] * [[:Category:@topic.name]] * [[:Template:@topic.name]] * [[:Form:@topic.name]] topic links: @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @if (topicLink.targetTopic) { * [[:Category:@(topicLink.targetTopic.name)]] } } } @// macro to create skin params for BITPlan corporate identity @def bitplanumlci(int fontSize) { ' BITPlan Corporate identity skin params ' Copyright (c) 2015-2017 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager @{ String skinparams[] = {"note", "component", "package", "usecase","activity","classAttribute","interface","class","object"}; } @for (String skinparam:skinparams) { skinparam @skinparam { BackGroundColor #FFFFFF FontSize @fontSize ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } } hide Circle ' end of skinparams ' } @// macro to create Relation @def plantUmlRelation(TopicLink topicLink) { @{ String sourceMany="1"; String targetMany="1"; if ("true".equals(topicLink.sourceMultiple)) sourceMany="*"; if ("true".equals(topicLink.targetMultiple)) targetMany="*"; } @(topicLink.source) "@(topicLink.sourceRole) (@(sourceMany))" -- "@(topicLink.targetRole)(@(targetMany))" @(topicLink.target) } @// macro to create uml from simela triples @def uml(String title,Topic topic) { === @title === <uml> title @topic.name note as @(topic.name)DiagramNote Copyright (c) 2015-2017 BITPlan GmbH [[http://www.bitplan.com]] end note note as @(topic.name)Note @(topic.documentation) end note class @topic.name @("{") @for (Property property:topic.propertiesByIndex()) { @(property.type) @(property.name) } @("}") @(topic.name)Note .. @(topic.name) @for (TopicLink topicLink:topic.sourceTopicLinks.mTopicLinks) { @plantUmlRelation(topicLink) } @for (TopicLink topicLink:topic.targetTopicLinks.mTopicLinks) { @plantUmlRelation(topicLink) } @bitplanumlci(12) </uml> } </source> === dialogdefs === <source lang='java' id='dialogdefs' cache='true'> @import java.net.URLEncoder @// JQuery imports @def jquery(String indent) { @(indent)<!-- JQuery Code for resthtmlview --> @(indent)<script src="/resthtmlview/js/jquery-1.10.2.min.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery-ui-1.10.0.custom.js"></script> @(indent)<script src="/resthtmlview/js/i18n/grid.locale-en.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/ui.multiselect.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery.ui.message.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/jquery.jqGrid.min.js" type="text/javascript"></script> @(indent)<script src="/resthtmlview/js/redactor.min.js" type="text/javascript"></script> @(indent)<!-- load jQuery and tablesorter scripts --> @(indent)<script src="/resthtmlview/js/jquery.tablesorter.min.js"></script> @(indent)<script src="/resthtmlview/js/jquery.tablesorter.widgets.js"></script> @(indent)<script src="/resthtmlview/js/jquery.metadata.js"></script> @(indent)<!-- JQuery Styles for resthtmlview --> @(indent)<link href="/resthtmlview/css/form.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/messages.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/bitplanfadetogrey/jquery-ui-1.10.1.custom.css" type="text/css" media="screen" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/ui.jqgrid.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<link href="/resthtmlview/css/ui.multiselect.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<!-- Tablesorter: required --> @(indent)<link href="/resthtmlview/css/theme.blue.css" rel="stylesheet"> @(indent)<link href="/resthtmlview/css/searchFilter.css" type="text/css" media="screen" rel="stylesheet" /> @(indent)<link href="/resthtmlview/css/redactor.css" type="text/css" media="screen" rel="stylesheet" /> } @// CSS Style definitions @def style(String indent) { @(indent)<style> @(indent) body { height:100% } @(indent) #container { @(indent) background-color: #f0f0f0; /* lightblue background */ @(indent) width: 100%; /* Container has full width */ @(indent) margin: auto; /* center container */ @(indent) min-height: 100%; /* minimum height 100 % (for modern browsers) */ @(indent) height: auto !important; /* important Behel (for modern browsers */ @(indent) height: 100%; /* IE shall work as specified */ @(indent) overflow: hidden !important; /* firefox scrollbar */ @(indent) } @(indent)</style> } @// dialog definition @def dialog(String indent) { @(indent)<script type="text/javascript"> @(indent) $(document).ready(function() { @(indent) var wWidth = $(window).width(); @(indent) var wHeight = $(window).height(); @(indent) var dTopy = wHeight * 0.25; // top at 25% of window height @(indent) var dTopx = wWidth * 0.25; // left at 25% of window width @(indent) var dWidth = 'auto'; //this will make the dialog 98% of the window size @(indent) var dHeight = 'auto'; @(indent) $( "#dialog" ).dialog({ @(indent) // position : [ dTopx, dTopy ], @(indent) width : dWidth, @(indent) height : dHeight, @(indent) modal : true, @(indent) // title: ""+wWidth+"x"+wHeight+" "+dTopx+":"+dTopy, @(indent) my: "center", @(indent) at: "center", @(indent) of: window, @(indent) show : { @(indent) effect : "blind", @(indent) duration : 500 @(indent) }, @(indent) hide : { @(indent) effect : "fade", @(indent) duration : 500 @(indent) } @(indent) }); @(indent) // tabs @(indent) $( "#tabs" ).tabs(); @(indent) // tablesorter @(indent) $.extend( $.tablesorter.defaults, { @(indent) theme: 'blue', @(indent) widthFixed: false @(indent) }); @(indent) $(".sortable").tablesorter(); @(indent) }); @(indent)</script> } @// display the given stockicon @def String stockicon(String name,int size,String alt,String title) { String iconhref="/stockicons/"+size+"x"+size+"/shadow/"+name+".png"; String img="<img src='"+iconhref+"' alt='"+alt+"' title='"+title+"' width='"+size+"px' height='"+size+"px' >"; return img; } @// url encode the given txt @def String urlEncode(String txt) { String result=URLEncoder.encode(txt, "UTF-8"); return result; } @def selectall() { <script> /** * http://stackoverflow.com/questions/432493/how-do-you-access-the-matched-groups-in-a-javascript-regular- * expression * examples: * * var matches = getRegexMatches(/(dog)/, "dog boat, cat car dog"); * console.log(matches); * * var matches = getRegexMatches(/(dog|cat) (boat|car)/, "dog boat, cat car"); * console.log(matches); */ function getRegexMatches(regex, string) { if(!(regex instanceof RegExp)) { return "ERROR"; } else { if (!regex.global) { // If global flag not set, create new one. var flags = "g"; if (regex.ignoreCase) flags += "i"; if (regex.multiline) flags += "m"; if (regex.sticky) flags += "y"; regex = RegExp(regex.source, flags); } } var matches = []; var match = regex.exec(string); while (match) { if (match.length > 2) { var group_matches = []; for (var i = 1; i < match.length; i++) { group_matches.push(match[i]); } matches.push(group_matches); } else { matches.push(match[1]); } match = regex.exec(string); } return matches; } /** * get the select_row or select_col checkboxes dependening on the selectType row/col */ function getSelectCheckboxes(selectType) { var regex=new RegExp("select_"+selectType+"_"); var result= $('input').filter(function() {return this.id.match(regex);}); return result; } /** * matrix selection logic * the goal is to provide select all / select row x / select col x * checkboxes that will allow to * select all: select all grid elements * select row: select the grid elements in the given row * select col: select the grid elements in the given col * * There is a naming convention for the ids and css style classes of the the selectors and elements: * select all -> id: selectall * select row -> id: select_row_row e.g. select_row_2 * select col -> id: select_col_col e.g. select_col_3 * grid element -> class checkBoxClass col_col row_row e.g. checkBoxClass row_2 col_3 */ function checkSelectStates() { // get the list of grid checkbox elements // all checkboxes var all = $('.checkBoxClass'); // all select row check boxes var rows = getSelectCheckboxes('row'); // all select columnn check boxes var cols = getSelectCheckboxes('col'); // console.log("rows: "+rows.length+", cols:"+cols.length+" total: "+all.length); // get the total number of checkboxes in the grid var allLen=all.length; // get the number of checkboxes in the checked state var filterLen=all.filter(':checked').length; // console.log(allLen+"-"+filterLen); // if all checkboxes are in the checked state // set the state of the selectAll checkbox to checked to be able // to deselect all at once, otherwise set it to unchecked to be able to select all at once if (allLen == filterLen) { $("#selectall").prop("checked", true); } else { $("#selectall").prop("checked", false); } // now check the completeness of the rows for (row = 0; row < rows.length; row++) { var rowall=$('.row_'+row); var rowchecked=rowall.filter(':checked'); if (rowall.length == rowchecked.length) { $("#select_row_"+row).prop("checked", true); } else { $("#select_row_"+row).prop("checked", false); } } // now check the completeness of the cols for (col = 0; col < cols.length; col++) { var colall=$('.col_'+col); var colchecked=colall.filter(':checked'); if (colall.length == colchecked.length) { $("#select_col_"+col).prop("checked", true); } else { $("#select_col_"+col).prop("checked", false); } } } $(document).ready(function () { // handle click event for Select all check box $("#selectall").click(function () { // set the checked property of all grid elements to be the same as // the state of the SelectAll check box var state=$("#selectall").prop('checked'); $(".checkBoxClass").prop('checked', state); getSelectCheckboxes('row').prop('checked', state); getSelectCheckboxes('col').prop('checked', state); }); // handle clicks within the grid $(".checkBoxClass").on( "click", function() { checkSelectStates(); }); $('.checkboxSelect').on( "click", function() { var matchRowColArr=getRegexMatches(/select_(row|col)_([0-9]+)/,this.id); var matchRowCol=matchRowColArr[0]; // console.log(matchRowCol); if (matchRowCol.length==2) { var selectType=matchRowCol[0]; // e.g. row var selectIndex=matchRowCol[1]; // e.g. 2 // console.log(this.id+" clicked to select "+selectType+" "+selectIndex); // e.g. .row_2 $("."+selectType+"_"+selectIndex) .prop('checked', $("#select_"+selectType+"_"+selectIndex).prop('checked')); checkSelectStates(); } }); }); </script> } </source> === java === The debugging version of the SiDIF Templates <source lang='java' id='java' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.TripleStore @import org.sidif.triple.Triple @import org.sidif.wiki.SMW_Triples @import com.alibaba.fastjson.JSON @// import instead of src @import com.bitplan.topic.TopicStatic.YT @import com.bitplan.topic.TopicStatic.Context @import com.bitplan.topic.TopicStatic.Topic @import com.bitplan.topic.TopicStatic.Property @import com.bitplan.topic.TopicStatic.SMW_Type @import com.bitplan.topic.TopicStatic.TopicLink @import com.bitplan.topic.TopicStatic.ContextManager @import com.bitplan.topic.TopicStatic.TopicManager @import com.bitplan.topic.TopicStatic.PropertyManager @import com.bitplan.topic.TopicStatic.SMW_TypeManager @import com.bitplan.topic.TopicStatic.TopicLinkManager @import com.bitplan.topic.ContextFactory @import com.bitplan.topic.ContextSetting @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } </source> === javasrc === the interpreted version of the java code needs to be updated from {{Link|target=Concept:Topic/Java}} with the usercode sections being added from org.sidif.wiki in src/main/java com.bitplan.topic.TopicStatic.java. <source lang='java' id='javasrc' cache='true'> @// This is a rythm template @// the args are the standard wikiTask arguments @import org.sidif.triple.TripleQuery @import org.sidif.triple.TripleStore @import org.sidif.triple.Triple @import org.sidif.wiki.SMW_Triples @import com.alibaba.fastjson.JSON @import java.util.Map.Entry; @import java.util.logging.Logger; @import java.util.logging.Level; @import com.bitplan.topic.ContextFactory @import com.bitplan.topic.ContextSetting @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @def static { /** * Base class */ public static abstract class TopicBase { protected static Logger LOGGER = Logger.getLogger("org.sidif.wiki"); /** * initialize */ public void init(TripleQuery query) { } /** * get the propertySidif of the given property * * @param name * @param value * @return */ public static String propertySiDIF(String name, String value, String type) { // default is an empty string - no property line for emtpy values String result = ""; // if the value is not empty if ((value != null) && (!("".equals(value.trim())))) { // do we need to quote the result? String quote = ""; // this depends on the Type if ("Text".equals(type)) { quote = "\""; } // create a SIDIF Property line like // "John" is lastname of it result += quote + value + quote + " is " + name + " of it\n"; } // return the SiDIF property line return result; } /** * get me as a String * * @param name * @param value * @return */ public static String propertySiDIF(String name, String value) { String result = propertySiDIF(name, value, "Text"); return result; } /** * check if the given boolean String value is true * * @param value * @return true if the value is not null and has true/TRUE as it's string * content */ public boolean isTrue(String value) { boolean result = false; if (value != null && value.toLowerCase().equals("true")) { result = true; } return result; } } // TopicBase public static class YTManager { List<YT> yTs; /** * @param yts * the yts to set */ public void setYTs(List<YT> yts) { this.yTs = yts; } /** * get the technical aspects * * @return */ public List<YT> getYTs() { if (yTs == null) { yTs = Arrays.asList(YT.yts); } return yTs; } /** * convert this YT to a JSON string */ public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static YTManager fromJson(String json) { YTManager result = JSON.parseObject(json, YTManager.class); return result; } } /** * technical aspects of Y-Principle * * @author wf * */ public static class YT { // Y-Principle technical aspects public static YT yts[] = { new YT("Category", "Category", "category", "/images/d/d6/Category_Icon.png"), new YT("Concept", "Concept", "concept", "/images/2/25/Concept_Icon.png"), new YT("Form", "Form", "form", "/images/e/e5/Form_icon.jpg"), new YT("Help", "Help", "help", "/images/7/7a/Help_Icon.png"), new YT("Listof", "List of", "listof", "/images/7/7f/List_Icon.png"), new YT("Template", "Template", "template", "/images/6/61/Icon_template.png"), new YT("Properties", "Properties", "properties", "/images/6/6a/Element_into_input.png"), new YT("Java", "Java", "javacodegen", "/images/3/38/Java_icon.png") }; /** * get the YT with the given name * * @param ytname */ public static YT getYT(String ytname) { for (YT yt : yts) { if (yt.name.equals(ytname)) { return yt; } } return null; } public String name; public String label; public String iconUrl; public String template; // default constructor for json public YT() { }; /** * construct me with name label and icon url * * @param name * @param label * @param iconUrl */ public YT(String name, String label, String template, String iconUrl) { super(); this.name = name; this.label = label; this.template = template; this.iconUrl = iconUrl; } /** * a part where name and label is different * * @param name * @param label */ public YT(String name, String label) { this(name, label, name.toLowerCase(), "File:" + name + ".png"); } /** * a part where name and label is the same * * @param name */ public YT(String name) { this(name, name); } /** * convert this YT to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the page Title for the given topic name * * @param topicname * @return */ public String getPageTitle(Topic topic) { String result = this.name + ":" + topic.name; if ("Listof".equals(name)) { result = "List_of_" + topic.pluralName.replace(" ", "_"); } if ("Properties".equals(name)) { result = "Concept:" + topic.name.replace(" ", "_") + "/Properties"; } if ("Java".equals(name)) { result = "Concept:" + topic.name.replace(" ", "_") + "/Java"; } return result; } } /** * Context * A Context groups some topics like a Namespace/Package */ public static class Context extends TopicBase { public String pageid; public String name; public String getName() { return name; } public void setName(String pName) { name = pName; } /** * convert this Context to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Context */ public Context() { } /** * construct a Context from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pContextTriple * - the triple to construct me from */ public Context(TripleQuery query, Triple pContextTriple) { this(query, pContextTriple.getSubject().toString()); } // constructor /** * construct a Context from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Context(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Context_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); init(query); } // constructor for Context // >>>{user defined topic code}{Context}{Context} /** * initialize */ public void init(TripleQuery query) { if (this.name == null) { this.name = this.pageid; } } /** * return me as a SiDIF string * * @return */ public String asSiDIF() { String result = ""; result += "#\n"; result += "# Context:" + getName() + "\n"; result += "#\n"; result += getPageid() + " isA Context\n"; result += propertySiDIF("name", name); for (Entry<String, Topic> topicEntry : this.topics.mTopicMap.entrySet()) { result += topicEntry.getValue().asSiDIF(); } return result; } // 1:n relation to topics public TopicManager topics = new TopicManager(); /** * accessor for 1:n relation to topics * * @return */ public List<Topic> getTopics() { return topics.mTopics; } /** * recreate topics from a given list * * @param pTopics */ public void setTopics(List<Topic> pTopics) { topics = new TopicManager(); topics.mTopics = pTopics; for (Topic topic : pTopics) { topics.mTopicMap.put(topic.getName(), topic); } } /** * get the Topic by the given topicName * * @param topicName * @return */ public Topic byName(String topicName) { Topic result = this.topics.byName(topicName); return result; } // <<<{user defined topic code}{Context}{Context} } // class Context /** * Manager for Context */ public static class ContextManager extends TopicBase { public String topicName = "Context"; public transient List<Context> mContexts = new ArrayList<Context>(); public transient Map<String, Context> mContextMap = new TreeMap<String, Context>(); /** * add a new Context */ public Context add(Context pContext) { mContexts.add(pContext); mContextMap.put(pContext.getName(), pContext); return pContext; } /** * add a new Context from the given triple */ public Context add(TripleQuery query, Triple pContextTriple) { Context lContext = new Context(query, pContextTriple); add(lContext); return lContext; } // reinitialize my mContext map public void reinit() { mContextMap.clear(); for (Context lContext : mContexts) { mContextMap.put(lContext.getName(), lContext); } } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // get a new manager from the given json string public static ContextManager fromJson(String json) { ContextManager result = JSON.parseObject(json, ContextManager.class); result.reinit(); return result; } // default constructor public ContextManager() { } // construct me from the given triple Query query public ContextManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lContextQuery = query.query(null, "isA", "Context"); for (Triple lContextTriple : lContextQuery.getTriples()) { add(query, lContextTriple); } // then the SMW triplestore lContextQuery = query.query(null, "Property:IsA", "Context"); for (Triple lContextTriple : lContextQuery.getTriples()) { add(query, lContextTriple); } init(query); } // constructor for Context Manager // >>>{user defined topicmanager code}{Context}{Context} public transient TopicManager mTopicManager; public transient PropertyManager mPropertyManager; /** * run pass 2 to link topics to context and properties to topics * * @return */ public List<String> pass2() { List<String> result = new ArrayList<String>(); for (Topic topic : mTopicManager.mTopics) { if (topic.context == null) { LOGGER.log(Level.SEVERE, "topic " + topic.getName() + " pageid " + topic.getPageid() + " has a null context"); } else { Context context = this.mContextMap.get(topic.context); if (context != null) { context.topics.add(topic); } else { result.add("Context '" + topic.context + "' not found"); } } } // FIXME - do we really need to do this? for (Property property : mPropertyManager.mPropertys) { String propertyHint = "property " + property.getName() + " pageid " + property.getPageid(); if (property.topic == null) { LOGGER.log(Level.SEVERE, propertyHint + " has a null topic"); } else { // FIXME ... remove non name parts ... Topic topic = mTopicManager.mTopicMap.get(property.topic); if (topic != null) { if (!topic.properties.mPropertyMap.containsKey(property.getName())) { result.add("property '" + propertyHint + " not found in topic " + topic.getName()); } else { topic.properties.add(property); } } else { result.add("Topic '" + property.topic + "' for " + propertyHint + " not found in "); } } } return result; } /** * construct me from a tripleStore * * @param tripleStore */ public ContextManager(TripleStore tripleStore) { this(tripleStore.query()); mTopicManager = new TopicManager(tripleStore.query()); mPropertyManager = new PropertyManager(tripleStore.query()); mTopicManager.configureTopics(); pass2(); } /** * get my contexts * * @return */ public List<Context> getContexts() { List<Context> result = this.mContexts; return result; } /** * get the given context by name * * @param name * @return */ public Context byName(String name) { Context result = this.mContextMap.get(name); return result; } /** * return me as a SiDIF representation * * @return */ public String asSiDIF() { String result = ""; for (Entry<String, Context> contextEntry : this.mContextMap.entrySet()) { result += contextEntry.getValue().asSiDIF(); } return result; } // <<<{user defined topicmanager code}{Context}{Context} } // class Context Manager /** * Topic * A Topic is a Concept/Class/Thing/Entity */ public static class Topic extends TopicBase { public String pageid; public String name; public String pluralName; public String icon; public String iconUrl; public String documentation; public String wikiDocumentation; public String defaultstoremode; public String listLimit; public String cargo; public String context; public String headerTabs; public String getName() { return name; } public void setName(String pName) { name = pName; } public String getPluralName() { return pluralName; } public void setPluralName(String pPluralName) { pluralName = pPluralName; } public String getIcon() { return icon; } public void setIcon(String pIcon) { icon = pIcon; } public String getIconUrl() { return iconUrl; } public void setIconUrl(String pIconUrl) { iconUrl = pIconUrl; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getWikiDocumentation() { return wikiDocumentation; } public void setWikiDocumentation(String pWikiDocumentation) { wikiDocumentation = pWikiDocumentation; } public String getDefaultstoremode() { return defaultstoremode; } public void setDefaultstoremode(String pDefaultstoremode) { defaultstoremode = pDefaultstoremode; } public String getListLimit() { return listLimit; } public void setListLimit(String pListLimit) { listLimit = pListLimit; } public String getCargo() { return cargo; } public void setCargo(String pCargo) { cargo = pCargo; } public String getContext() { return context; } public void setContext(String pContext) { context = pContext; } public String getHeaderTabs() { return headerTabs; } public void setHeaderTabs(String pHeaderTabs) { headerTabs = pHeaderTabs; } /** * convert this Topic to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Topic */ public Topic() { } /** * construct a Topic from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pTopicTriple * - the triple to construct me from */ public Topic(TripleQuery query, Triple pTopicTriple) { this(query, pTopicTriple.getSubject().toString()); } // constructor /** * construct a Topic from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Topic(TripleQuery query, String pageid) { this.pageid = pageid; Triple pluralNameTriple = query.selectSingle(pageid, "pluralName", null); if (pluralNameTriple == null) pluralNameTriple = query.selectSingle(pageid, "Property:Topic_pluralName", null); if (pluralNameTriple != null) pluralName = pluralNameTriple.getObject().toString(); Triple cargoTriple = query.selectSingle(pageid, "cargo", null); if (cargoTriple == null) cargoTriple = query.selectSingle(pageid, "Property:Topic_cargo", null); if (cargoTriple != null) cargo = cargoTriple.getObject().toString(); Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:Topic_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple wikiDocumentationTriple = query.selectSingle(pageid, "wikiDocumentation", null); if (wikiDocumentationTriple == null) wikiDocumentationTriple = query.selectSingle(pageid, "Property:Topic_wikiDocumentation", null); if (wikiDocumentationTriple != null) wikiDocumentation = wikiDocumentationTriple.getObject().toString(); Triple defaultstoremodeTriple = query.selectSingle(pageid, "defaultstoremode", null); if (defaultstoremodeTriple == null) defaultstoremodeTriple = query.selectSingle(pageid, "Property:Topic_defaultstoremode", null); if (defaultstoremodeTriple != null) defaultstoremode = defaultstoremodeTriple.getObject().toString(); Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Topic_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple iconTriple = query.selectSingle(pageid, "icon", null); if (iconTriple == null) iconTriple = query.selectSingle(pageid, "Property:Topic_icon", null); if (iconTriple != null) icon = iconTriple.getObject().toString(); Triple contextTriple = query.selectSingle(pageid, "context", null); if (contextTriple == null) contextTriple = query.selectSingle(pageid, "Property:Topic_context", null); if (contextTriple != null) context = contextTriple.getObject().toString(); Triple iconUrlTriple = query.selectSingle(pageid, "iconUrl", null); if (iconUrlTriple == null) iconUrlTriple = query.selectSingle(pageid, "Property:Topic_iconUrl", null); if (iconUrlTriple != null) iconUrl = iconUrlTriple.getObject().toString(); Triple headerTabsTriple=query.selectSingle(pageid,"headerTabs",null); if (headerTabsTriple==null) headerTabsTriple=query.selectSingle(pageid,"Property:Topic_headerTabs",null); if (headerTabsTriple!=null) headerTabs=headerTabsTriple.getObject().toString(); init(query); } // constructor for Topic // >>>{user defined topic code}{Topic}{Topic} PropertyManager properties = new PropertyManager(); transient public TopicLinkManager sourceTopicLinks = new TopicLinkManager(); transient public TopicLinkManager targetTopicLinks = new TopicLinkManager(); transient public Property conceptProperty; // the Property to be used when // selecting a // Concept /** * get the Properties * * @return */ public List<Property> getProperties() { return properties.mPropertys; } /** * add Properties from the given query * * @param propertyQuery * @param query */ public void addProperties(TripleQuery propertyQuery, TripleQuery query) { if (propertyQuery != null) { for (Triple property : propertyQuery.getTriples()) { properties.add(query, property); } } } /** * initialize me with the given query * * @Override */ public void init(TripleQuery query) { // pass2 does this in a query indepent way ... // SiDIF style property query ... TripleQuery propertyQuery = query.query(null, "addsTo", pageid); addProperties(propertyQuery, query); // pass2 does this in a reverse way - this could also be done but then // propertyNames would have to be fixed ... propertyQuery = query.query(null, "Property:Property_topic", pageid); addProperties(propertyQuery, query); addTopicLinks(query, sourceTopicLinks, "source"); addTopicLinks(query, targetTopicLinks, "target"); if (name == null) { name = pageid; } if (pluralName == null) { pluralName = name + "s"; } // add Properties for targetTopicLinks // this is the referenced to the "neighbour" Topic for (TopicLink topicLink : targetTopicLinks.mTopicLinks) { Property property = new Property(); property.pageid = topicLink.sourceRole; property.documentation = topicLink.sourceDocumentation; property.name = property.pageid; property.label = property.name; property.type = "Page"; property.isLink = "true"; // make sure the form shows the neighbour concept as an option String sourceName = topicLink.source; // remove "Concept:" prefix !!! FIXME - this is language dependent // and a horrible work around for the time being sourceName = sourceName.replace("Concept:", ""); sourceName = sourceName.replace("Konzept:", ""); property.values_from = "concept=" + sourceName; property.inputType = "dropdown"; properties.mPropertys.add(property); } } /** * add the topicLinks * * @param query * - the TripleQuery to get the triples from * @param tm * - the TopicLinkManager to add the topic links to * @param predicate * - the predicate to be used for linking */ public void addTopicLinks(TripleQuery query, TopicLinkManager tm, String predicate) { TripleQuery linkQuery = query.query(null, predicate, pageid); if (linkQuery != null) { for (Triple linkTriple : linkQuery.getTriples()) { String link = linkTriple.getSubject().toString(); TopicLink topiclink = new TopicLink(query, link); tm.mTopicLinks.add(topiclink); } } } /** * check my source TopicLinks and set the targetTopic by looking it up */ public void linkTargetTopics(TopicManager tm) { for (TopicLink sourceTopicLink : sourceTopicLinks.mTopicLinks) { String topicTarget = sourceTopicLink.target; // e.g. Concept:Property; topicTarget = topicTarget.replace("Concept:", ""); // remove Concept // part topicTarget = topicTarget.replace("Koncept:", ""); // remove Concept // part Topic targetTopic = tm.byName(topicTarget); if (targetTopic != null) { sourceTopicLink.targetTopic = targetTopic; } } } /** * set the concept Property for the given target Property */ public void setConceptProperty() { for (Property property : properties.mPropertys) { if ("true".equals(property.mandatory) || "true".equals(property.primaryKey)) { conceptProperty = property; break; } } } /** * get the Properties sorted by index * * @return */ public List<Property> propertiesByIndex() { List<Property> properties = new ArrayList<Property>( this.properties.mPropertys); Collections.sort(properties, new Comparator<Property>() { public int compare(Property p1, Property p2) { Integer p1i = Integer.MAX_VALUE; Integer p2i = Integer.MAX_VALUE; try { p1i = Integer.parseInt(p1.index); } catch (NumberFormatException nfe) { } ; try { p2i = Integer.parseInt(p2.index); } catch (NumberFormatException nfe) { } ; int result = p1i.compareTo(p2i); return result; } }); return properties; } /** * return me as a SiDIF string * * @return */ public String asSiDIF() { String result = ""; result += "#\n"; result += "#" + getName() + "\n"; result += "#\n"; result += name + " isA Topic\n"; result += propertySiDIF("name", name); result += propertySiDIF("pluralName", pluralName); result += propertySiDIF("documentation", documentation); result += propertySiDIF("wikiDocumentation", wikiDocumentation); result += propertySiDIF("icon", icon); result += propertySiDIF("iconUrl", iconUrl); result += propertySiDIF("defaultstoremode", defaultstoremode); result += propertySiDIF("listLimit", this.listLimit, "Boolean"); result += propertySiDIF("cargo", cargo, "Boolean"); result += propertySiDIF("headerTabs", this.headerTabs, "Boolean"); result += propertySiDIF("context", this.context); List<Property> propertiesByIndex = this.propertiesByIndex(); for (Property property : propertiesByIndex) { if (!isTrue(property.isLink)) result += getName() + "_" + property.getName() + " addsTo it\n"; } int pindex = 0; result += "# properties of " + name + "\n"; ; for (Property property : propertiesByIndex) { if (!isTrue(property.isLink)) { pindex++; result += "# property " + property.getName() + "\n"; result += getName() + "_" + property.getName() + " isA Property\n"; result += propertySiDIF("name", property.name); result += propertySiDIF("label", property.label); result += propertySiDIF("type", property.type); if (property.index == null) property.index = "" + pindex; result += propertySiDIF("index", property.index, "Number"); result += propertySiDIF("sortPos", property.sortPos, "Number"); result += propertySiDIF("primaryKey", property.primaryKey, "Boolean"); result += propertySiDIF("mandatory", property.mandatory, "Boolean"); result += propertySiDIF("namespace", property.namespace); result += propertySiDIF("size", property.size, "Number"); result += propertySiDIF("uploadable", property.uploadable, "Boolean"); result += propertySiDIF("defaultValue", property.defaultValue); result += propertySiDIF("inputType", property.inputType); result += propertySiDIF("allowedValues", property.allowedValues); result += propertySiDIF("documentation", property.documentation); result += propertySiDIF("values_from", property.values_from); result += propertySiDIF("showInGrid", property.showInGrid, "Boolean"); result += propertySiDIF("isLink", property.isLink, "Boolean"); // FIXME maybe use later again // result += propertySiDIF("pageid", property.pageid); result += propertySiDIF("topic", getName()); } } return result; } // <<<{user defined topic code}{Topic}{Topic} } // class Topic /** * Manager for Topic */ public static class TopicManager extends TopicBase { public String topicName = "Topic"; public List<Topic> mTopics = new ArrayList<Topic>(); public transient Map<String, Topic> mTopicMap = new TreeMap<String, Topic>(); /** * add a new Topic */ public Topic add(Topic pTopic) { mTopics.add(pTopic); mTopicMap.put(pTopic.getName(), pTopic); return pTopic; } /** * add a new Topic from the given triple */ public Topic add(TripleQuery query, Triple pTopicTriple) { Topic lTopic = new Topic(query, pTopicTriple); add(lTopic); return lTopic; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public TopicManager() { } // construct me from the given triple Query query public TopicManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicQuery = query.query(null, "isA", "Topic"); for (Triple lTopicTriple : lTopicQuery.getTriples()) { add(query, lTopicTriple); } // then the SMW triplestore lTopicQuery = query.query(null, "Property:IsA", "Topic"); for (Triple lTopicTriple : lTopicQuery.getTriples()) { add(query, lTopicTriple); } init(query); } // constructor for Topic Manager // >>>{user defined topicmanager code}{Topic}{Topic} /** * get a topic by the given name * * @param topicName * - the name of the topic to get FIXME - speedup? */ public Topic byName(String topicName) { Topic result = null; for (Topic topic : mTopics) { if (topicName.equals(topic.name)) { result = topic; } } return result; } // byName /** * configure Topics: link TargetTopics set Concept Properties */ public void configureTopics() { for (Topic topic : mTopics) { topic.setConceptProperty(); topic.linkTargetTopics(this); } } // <<<{user defined topicmanager code}{Topic}{Topic} } // class Topic Manager /** * SMW_Type * an SMW_Type is a data type which determines the possible values for that * type e.g. a Boolean can hold true/fals values while a Number can hold * 3.1459 or 20. A Page can hold the name of a Wiki page see * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes */ public static class SMW_Type extends TopicBase { public String pageid; public String documentation; public String type; public String typepage; public String helppage; public String javaType; public String usedByProperties; public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getType() { return type; } public void setType(String pType) { type = pType; } public String getTypepage() { return typepage; } public void setTypepage(String pTypepage) { typepage = pTypepage; } public String getHelppage() { return helppage; } public void setHelppage(String pHelppage) { helppage = pHelppage; } public String getJavaType() { return javaType; } public void setJavaType(String pJavaType) { javaType = pJavaType; } public String getUsedByProperties() { return usedByProperties; } public void setUsedByProperties(String pUsedByProperties) { usedByProperties = pUsedByProperties; } /** * convert this SMW_Type to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for SMW_Type */ public SMW_Type() { } /** * construct a SMW_Type from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pSMW_TypeTriple * - the triple to construct me from */ public SMW_Type(TripleQuery query, Triple pSMW_TypeTriple) { this(query, pSMW_TypeTriple.getSubject().toString()); } // constructor /** * construct a SMW_Type from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public SMW_Type(TripleQuery query, String pageid) { this.pageid = pageid; Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:SMW_Type_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple typeTriple = query.selectSingle(pageid, "type", null); if (typeTriple == null) typeTriple = query.selectSingle(pageid, "Property:SMW_Type_type", null); if (typeTriple != null) type = typeTriple.getObject().toString(); Triple typepageTriple = query.selectSingle(pageid, "typepage", null); if (typepageTriple == null) typepageTriple = query.selectSingle(pageid, "Property:SMW_Type_typepage", null); if (typepageTriple != null) typepage = typepageTriple.getObject().toString(); Triple helppageTriple = query.selectSingle(pageid, "helppage", null); if (helppageTriple == null) helppageTriple = query.selectSingle(pageid, "Property:SMW_Type_helppage", null); if (helppageTriple != null) helppage = helppageTriple.getObject().toString(); Triple javaTypeTriple = query.selectSingle(pageid, "javaType", null); if (javaTypeTriple == null) javaTypeTriple = query.selectSingle(pageid, "Property:SMW_Type_javaType", null); if (javaTypeTriple != null) javaType = javaTypeTriple.getObject().toString(); Triple usedByPropertiesTriple = query.selectSingle(pageid, "usedByProperties", null); if (usedByPropertiesTriple == null) usedByPropertiesTriple = query.selectSingle(pageid, "Property:SMW_Type_usedByProperties", null); if (usedByPropertiesTriple != null) usedByProperties = usedByPropertiesTriple.getObject().toString(); init(query); } // constructor for SMW_Type // >>>{user defined topic code}{SMW_Type}{SMW_Type} // <<<{user defined topic code}{SMW_Type}{SMW_Type} } // class SMW_Type /** * Manager for SMW_Type */ public static class SMW_TypeManager extends TopicBase { public String topicName = "SMW_Type"; public List<SMW_Type> mSMW_Types = new ArrayList<SMW_Type>(); public Map<String, SMW_Type> mSMW_TypeMap = new TreeMap<String, SMW_Type>(); /** * add a new SMW_Type */ public SMW_Type add(SMW_Type pSMW_Type) { mSMW_Types.add(pSMW_Type); mSMW_TypeMap.put(pSMW_Type.getPageid(), pSMW_Type); return pSMW_Type; } /** * add a new SMW_Type from the given triple */ public SMW_Type add(TripleQuery query, Triple pSMW_TypeTriple) { SMW_Type lSMW_Type = new SMW_Type(query, pSMW_TypeTriple); add(lSMW_Type); return lSMW_Type; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public SMW_TypeManager() { } // construct me from the given triple Query query public SMW_TypeManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lSMW_TypeQuery = query.query(null, "isA", "SMW_Type"); for (Triple lSMW_TypeTriple : lSMW_TypeQuery.getTriples()) { add(query, lSMW_TypeTriple); } // then the SMW triplestore lSMW_TypeQuery = query.query(null, "Property:IsA", "SMW_Type"); for (Triple lSMW_TypeTriple : lSMW_TypeQuery.getTriples()) { add(query, lSMW_TypeTriple); } init(query); } // constructor for SMW_Type Manager // >>>{user defined topicmanager code}{SMW_Type}{SMW_Type} // <<<{user defined topicmanager code}{SMW_Type}{SMW_Type} } // class SMW_Type Manager /** * Property * a Property is a Feature/Attribute */ public static class Property extends TopicBase { public String pageid; public String inputType; public String defaultValue; public String mandatory; public String allowedValues; public String uploadable; public String index; public String sortPos; public String showInGrid; public String values_from; public String isLink; public String size; public String topic; public String label; public String name; public String primaryKey; public String documentation; public String namespace; public String type; public String getInputType() { return inputType; } public void setInputType(String pInputType) { inputType = pInputType; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String pDefaultValue) { defaultValue = pDefaultValue; } public String getMandatory() { return mandatory; } public void setMandatory(String pMandatory) { mandatory = pMandatory; } public String getAllowedValues() { return allowedValues; } public void setAllowedValues(String pAllowedValues) { allowedValues = pAllowedValues; } public String getUploadable() { return uploadable; } public void setUploadable(String pUploadable) { uploadable = pUploadable; } public String getIndex() { return index; } public void setIndex(String pIndex) { index = pIndex; } public String getSortPos() { return sortPos; } public void setSortPos(String pSortPos) { sortPos = pSortPos; } public String getShowInGrid() { return showInGrid; } public void setShowInGrid(String pShowInGrid) { showInGrid = pShowInGrid; } public String getValues_from() { return values_from; } public void setValues_from(String pValues_from) { values_from = pValues_from; } public String getIsLink() { return isLink; } public void setIsLink(String pIsLink) { isLink = pIsLink; } public String getSize() { return size; } public void setSize(String pSize) { size = pSize; } public String getTopic() { return topic; } public void setTopic(String pTopic) { topic = pTopic; } public String getLabel() { return label; } public void setLabel(String pLabel) { label = pLabel; } public String getName() { return name; } public void setName(String pName) { name = pName; } public String getPrimaryKey() { return primaryKey; } public void setPrimaryKey(String pPrimaryKey) { primaryKey = pPrimaryKey; } public String getDocumentation() { return documentation; } public void setDocumentation(String pDocumentation) { documentation = pDocumentation; } public String getNamespace() { return namespace; } public void setNamespace(String pNamespace) { namespace = pNamespace; } public String getType() { return type; } public void setType(String pType) { type = pType; } /** * convert this Property to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for Property */ public Property() { } /** * construct a Property from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pPropertyTriple * - the triple to construct me from */ public Property(TripleQuery query, Triple pPropertyTriple) { this(query, pPropertyTriple.getSubject().toString()); } // constructor /** * construct a Property from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public Property(TripleQuery query, String pageid) { this.pageid = pageid; Triple inputTypeTriple = query.selectSingle(pageid, "inputType", null); if (inputTypeTriple == null) inputTypeTriple = query.selectSingle(pageid, "Property:Property_inputType", null); if (inputTypeTriple != null) inputType = inputTypeTriple.getObject().toString(); Triple defaultValueTriple = query.selectSingle(pageid, "defaultValue", null); if (defaultValueTriple == null) defaultValueTriple = query.selectSingle(pageid, "Property:Property_defaultValue", null); if (defaultValueTriple != null) defaultValue = defaultValueTriple.getObject().toString(); Triple mandatoryTriple = query.selectSingle(pageid, "mandatory", null); if (mandatoryTriple == null) mandatoryTriple = query.selectSingle(pageid, "Property:Property_mandatory", null); if (mandatoryTriple != null) mandatory = mandatoryTriple.getObject().toString(); Triple allowedValuesTriple = query.selectSingle(pageid, "allowedValues", null); if (allowedValuesTriple == null) allowedValuesTriple = query.selectSingle(pageid, "Property:Property_allowedValues", null); if (allowedValuesTriple != null) allowedValues = allowedValuesTriple.getObject().toString(); Triple uploadableTriple = query.selectSingle(pageid, "uploadable", null); if (uploadableTriple == null) uploadableTriple = query.selectSingle(pageid, "Property:Property_uploadable", null); if (uploadableTriple != null) uploadable = uploadableTriple.getObject().toString(); Triple indexTriple = query.selectSingle(pageid, "index", null); if (indexTriple == null) indexTriple = query.selectSingle(pageid, "Property:Property_index", null); if (indexTriple != null) index = indexTriple.getObject().toString(); Triple sortPosTriple = query.selectSingle(pageid, "sortPos", null); if (sortPosTriple == null) sortPosTriple = query.selectSingle(pageid, "Property:Property_sortPos", null); if (sortPosTriple != null) sortPos = sortPosTriple.getObject().toString(); Triple showInGridTriple = query.selectSingle(pageid, "showInGrid", null); if (showInGridTriple == null) showInGridTriple = query.selectSingle(pageid, "Property:Property_showInGrid", null); if (showInGridTriple != null) showInGrid = showInGridTriple.getObject().toString(); Triple values_fromTriple = query .selectSingle(pageid, "values_from", null); if (values_fromTriple == null) values_fromTriple = query.selectSingle(pageid, "Property:Property_values_from", null); if (values_fromTriple != null) values_from = values_fromTriple.getObject().toString(); Triple isLinkTriple = query.selectSingle(pageid, "isLink", null); if (isLinkTriple == null) isLinkTriple = query.selectSingle(pageid, "Property:Property_isLink", null); if (isLinkTriple != null) isLink = isLinkTriple.getObject().toString(); Triple sizeTriple = query.selectSingle(pageid, "size", null); if (sizeTriple == null) sizeTriple = query.selectSingle(pageid, "Property:Property_size", null); if (sizeTriple != null) size = sizeTriple.getObject().toString(); Triple topicTriple = query.selectSingle(pageid, "topic", null); if (topicTriple == null) topicTriple = query.selectSingle(pageid, "Property:Property_topic", null); if (topicTriple != null) topic = topicTriple.getObject().toString(); Triple labelTriple = query.selectSingle(pageid, "label", null); if (labelTriple == null) labelTriple = query.selectSingle(pageid, "Property:Property_label", null); if (labelTriple != null) label = labelTriple.getObject().toString(); Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query.selectSingle(pageid, "Property:Property_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple primaryKeyTriple = query.selectSingle(pageid, "primaryKey", null); if (primaryKeyTriple == null) primaryKeyTriple = query.selectSingle(pageid, "Property:Property_primaryKey", null); if (primaryKeyTriple != null) primaryKey = primaryKeyTriple.getObject().toString(); Triple documentationTriple = query.selectSingle(pageid, "documentation", null); if (documentationTriple == null) documentationTriple = query.selectSingle(pageid, "Property:Property_documentation", null); if (documentationTriple != null) documentation = documentationTriple.getObject().toString(); Triple namespaceTriple = query.selectSingle(pageid, "namespace", null); if (namespaceTriple == null) namespaceTriple = query.selectSingle(pageid, "Property:Property_namespace", null); if (namespaceTriple != null) namespace = namespaceTriple.getObject().toString(); Triple typeTriple = query.selectSingle(pageid, "type", null); if (typeTriple == null) typeTriple = query.selectSingle(pageid, "Property:Property_type", null); if (typeTriple != null) type = typeTriple.getObject().toString(); init(query); } // constructor for Property // >>>{user defined topic code}{Property}{Property} @Override public void init(TripleQuery query) { if (isLink == null) { isLink = "false"; } if (name == null) { // use page id e.g. Concept_name String idparts[] = pageid.split("_"); name = pageid.replaceFirst(idparts[0] + "_", ""); } if (label == null) { label = name; } if (type == null) { type = "Text"; } if (type.startsWith("Special:Types/")) { type = type.replace("Special:Types/", ""); } } // <<<{user defined topic code}{Property}{Property} } // class Property /** * Manager for Property */ public static class PropertyManager extends TopicBase { public String topicName = "Property"; public transient List<Property> mPropertys = new ArrayList<Property>(); public transient Map<String, Property> mPropertyMap = new LinkedHashMap<String, Property>(); /** * add a new Property */ public Property add(Property pProperty) { if (mPropertyMap.containsKey(pProperty.getName())) { LOGGER.log(Level.WARNING, "duplicate property " + pProperty.getName() + " from pageid " + pProperty.getPageid()); } else { mPropertys.add(pProperty); mPropertyMap.put(pProperty.getName(), pProperty); } return pProperty; } /** * add a new Property from the given triple */ public Property add(TripleQuery query, Triple pPropertyTriple) { Property lProperty = new Property(query, pPropertyTriple); add(lProperty); return lProperty; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public PropertyManager() { } // construct me from the given triple Query query public PropertyManager(TripleQuery query) { // first query the SiDIF based triplestore TripleQuery lPropertyQuery = query.query(null, "isA", "Property"); for (Triple lPropertyTriple : lPropertyQuery.getTriples()) { add(query, lPropertyTriple); } // then the SMW triplestore lPropertyQuery = query.query(null, "Property:IsA", "Property"); for (Triple lPropertyTriple : lPropertyQuery.getTriples()) { add(query, lPropertyTriple); } init(query); } // constructor for Property Manager // >>>{user defined topicmanager code}{Property}{Property} // <<<{user defined topicmanager code}{Property}{Property} } // class Property Manager /** * TopicLink * */ public static class TopicLink extends TopicBase { public String pageid; public String name; public String sourceRole; public String sourceMultiple; public String source; public String sourceDocumentation; public String targetRole; public String targetMultiple; public String target; public String masterDetail; public String targetDocumentation; public String getName() { return name; } public void setName(String pName) { name = pName; } public String getSourceRole() { return sourceRole; } public void setSourceRole(String pSourceRole) { sourceRole = pSourceRole; } public String getSourceMultiple() { return sourceMultiple; } public void setSourceMultiple(String pSourceMultiple) { sourceMultiple = pSourceMultiple; } public String getSource() { return source; } public void setSource(String pSource) { source = pSource; } public String getSourceDocumentation() { return sourceDocumentation; } public void setSourceDocumentation(String pSourceDocumentation) { sourceDocumentation = pSourceDocumentation; } public String getTargetRole() { return targetRole; } public void setTargetRole(String pTargetRole) { targetRole = pTargetRole; } public String getTargetMultiple() { return targetMultiple; } public void setTargetMultiple(String pTargetMultiple) { targetMultiple = pTargetMultiple; } public String getTarget() { return target; } public void setTarget(String pTarget) { target = pTarget; } public String getMasterDetail() { return masterDetail; } public void setMasterDetail(String pMasterDetail) { masterDetail = pMasterDetail; } public String getTargetDocumentation() { return targetDocumentation; } public void setTargetDocumentation(String pTargetDocumentation) { targetDocumentation = pTargetDocumentation; } /** * convert this TopicLink to a JSON string */ public String toJson() { return JSON.toJSONString(this); } /** * get the pageid for this topic */ public String getPageid() { return pageid; }; /** * default constructor for TopicLink */ public TopicLink() { } /** * construct a TopicLink from the given Triple * * @param query * - the TripleQuery to get the triples from * @param pTopicLinkTriple * - the triple to construct me from */ public TopicLink(TripleQuery query, Triple pTopicLinkTriple) { this(query, pTopicLinkTriple.getSubject().toString()); } // constructor /** * construct a TopicLink from the given pageId * * @param query * - the TripleQuery to get the triples from * @param pageid * - pageid */ public TopicLink(TripleQuery query, String pageid) { this.pageid = pageid; Triple nameTriple = query.selectSingle(pageid, "name", null); if (nameTriple == null) nameTriple = query .selectSingle(pageid, "Property:TopicLink_name", null); if (nameTriple != null) name = nameTriple.getObject().toString(); Triple sourceRoleTriple = query.selectSingle(pageid, "sourceRole", null); if (sourceRoleTriple == null) sourceRoleTriple = query.selectSingle(pageid, "Property:TopicLink_sourceRole", null); if (sourceRoleTriple != null) sourceRole = sourceRoleTriple.getObject().toString(); Triple sourceMultipleTriple = query.selectSingle(pageid, "sourceMultiple", null); if (sourceMultipleTriple == null) sourceMultipleTriple = query.selectSingle(pageid, "Property:TopicLink_sourceMultiple", null); if (sourceMultipleTriple != null) sourceMultiple = sourceMultipleTriple.getObject().toString(); Triple sourceTriple = query.selectSingle(pageid, "source", null); if (sourceTriple == null) sourceTriple = query.selectSingle(pageid, "Property:TopicLink_source", null); if (sourceTriple != null) source = sourceTriple.getObject().toString(); Triple sourceDocumentationTriple = query.selectSingle(pageid, "sourceDocumentation", null); if (sourceDocumentationTriple == null) sourceDocumentationTriple = query.selectSingle(pageid, "Property:TopicLink_sourceDocumentation", null); if (sourceDocumentationTriple != null) sourceDocumentation = sourceDocumentationTriple.getObject().toString(); Triple targetRoleTriple = query.selectSingle(pageid, "targetRole", null); if (targetRoleTriple == null) targetRoleTriple = query.selectSingle(pageid, "Property:TopicLink_targetRole", null); if (targetRoleTriple != null) targetRole = targetRoleTriple.getObject().toString(); Triple targetMultipleTriple = query.selectSingle(pageid, "targetMultiple", null); if (targetMultipleTriple == null) targetMultipleTriple = query.selectSingle(pageid, "Property:TopicLink_targetMultiple", null); if (targetMultipleTriple != null) targetMultiple = targetMultipleTriple.getObject().toString(); Triple targetTriple = query.selectSingle(pageid, "target", null); if (targetTriple == null) targetTriple = query.selectSingle(pageid, "Property:TopicLink_target", null); if (targetTriple != null) target = targetTriple.getObject().toString(); Triple masterDetailTriple = query.selectSingle(pageid, "masterDetail", null); if (masterDetailTriple == null) masterDetailTriple = query.selectSingle(pageid, "Property:TopicLink_masterDetail", null); if (masterDetailTriple != null) masterDetail = masterDetailTriple.getObject().toString(); Triple targetDocumentationTriple = query.selectSingle(pageid, "targetDocumentation", null); if (targetDocumentationTriple == null) targetDocumentationTriple = query.selectSingle(pageid, "Property:TopicLink_targetDocumentation", null); if (targetDocumentationTriple != null) targetDocumentation = targetDocumentationTriple.getObject().toString(); init(query); } // constructor for TopicLink // >>>{user defined topic code}{TopicLink}{TopicLink} public transient Topic sourceTopic = null; public transient Topic targetTopic = null; // <<<{user defined topic code}{TopicLink}{TopicLink} } // class TopicLink /** * Manager for TopicLink */ public static class TopicLinkManager extends TopicBase { public String topicName = "TopicLink"; public List<TopicLink> mTopicLinks = new ArrayList<TopicLink>(); public Map<String, TopicLink> mTopicLinkMap = new TreeMap<String, TopicLink>(); /** * add a new TopicLink */ public TopicLink add(TopicLink pTopicLink) { mTopicLinks.add(pTopicLink); mTopicLinkMap.put(pTopicLink.getPageid(), pTopicLink); return pTopicLink; } /** * add a new TopicLink from the given triple */ public TopicLink add(TripleQuery query, Triple pTopicLinkTriple) { TopicLink lTopicLink = new TopicLink(query, pTopicLinkTriple); add(lTopicLink); return lTopicLink; } // convert this manager to json format public String toJson() { return JSON.toJSONString(this); } // default constructor public TopicLinkManager() { } // construct me from the given triple Query query public TopicLinkManager(TripleQuery query) { // first query the SiDIF bases triplestore TripleQuery lTopicLinkQuery = query.query(null, "isA", "TopicLink"); for (Triple lTopicLinkTriple : lTopicLinkQuery.getTriples()) { add(query, lTopicLinkTriple); } // then the SMW triplestore lTopicLinkQuery = query.query(null, "Property:IsA", "TopicLink"); for (Triple lTopicLinkTriple : lTopicLinkQuery.getTriples()) { add(query, lTopicLinkTriple); } init(query); } // constructor for TopicLink Manager // >>>{user defined topicmanager code}{TopicLink}{TopicLink} // <<<{user defined topicmanager code}{TopicLink}{TopicLink} } // class TopicLink Manager } @{ // global variables // will only be set if tripleStore argument is available e.g. not for dialogs Topic maintopic=null; TripleQuery query=null; TripleQuery topics=null; ContextManager mContextManager=null; TopicManager mTopicManager=null; String maintopicName=null; if (tripleStore!=null) { query=tripleStore.query(); topics=query.query(null,"isA","Topic"); mContextManager=new ContextManager(tripleStore); mTopicManager=new TopicManager(query); // PropertyManager mPropertyManager=new PropertyManager(query); // TopicLinkManager mTopicLinkManager=new TopicLinkManager(query); // SMW_TypeManager mSMW_TypeManager=new SMW_TypeManager(query); mTopicManager.configureTopics(); maintopicName=wikiTask.getParams(); if (maintopicName!=null) { maintopic=mTopicManager.byName(maintopicName); } } } </source> 6c95a04ad8c5a4f508ffa7652b8e1a6b24b35fb5 MetaModel 0 34 340 199 2017-11-05T18:05:15Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:14Z wikitext text/x-wiki {{Context |name=MetaModel |since=2015/01/23 |master=http://master.bitplan.com |storemode=property }} __NOCACHE__ = Topics = {{Context |name=Metamodel |storemode=none |viewmode=masterdetail }} = WikiTask = {{ContextWikitask |context=MetaModel }} = Model = === sidif === <source lang='xml' id='sidif'> # # Context:MetaModel # MetaModel isA Context "MetaModel" is name of it # #Context # Context isA Topic "Context" is name of it "Contexts" is pluralName of it "A Context groups some topics like a Namespace/Package" is documentation of it "A Context groups some topics like a Namespace/Package" is wikiDocumentation of it "File:Registry.png" is icon of it "/images/d/d2/Registry.png" is iconUrl of it "property" is defaultstoremode of it "MetaModel" is context of it Context_name addsTo it Context_since addsTo it Context_master addsTo it # properties of Context # property name Context_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it 1 is sortPos of it true is primaryKey of it true is mandatory of it 80 is size of it false is uploadable of it "Name of the context" is documentation of it false is isLink of it "Context" is topic of it # property since Context_since isA Property "since" is name of it "since" is label of it "Date" is type of it 2 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "datepicker" is inputType of it "since when is this context available?" is documentation of it true is showInGrid of it false is isLink of it "Context" is topic of it # property master Context_master isA Property "master" is name of it "master" is label of it "URL" is type of it 3 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "what is the original master source of this context" is documentation of it true is showInGrid of it false is isLink of it "Context" is topic of it # #Property # Property isA Topic "Property" is name of it "Properties" is pluralName of it "a Property is a Feature/Attribute of a Topic" is documentation of it "see * https://semantic-mediawiki.org/wiki/Help:Properties_and_types * https://semantic-mediawiki.org/wiki/Help:Special_properties * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes" is wikiDocumentation of it "File:Element_into_input.png" is icon of it "/images/6/6a/Element_into_input.png" is iconUrl of it "property" is defaultstoremode of it "MetaModel" is context of it Property_name addsTo it Property_label addsTo it Property_type addsTo it Property_index addsTo it Property_sortPos addsTo it Property_primaryKey addsTo it Property_mandatory addsTo it Property_namespace addsTo it Property_size addsTo it Property_uploadable addsTo it Property_defaultValue addsTo it Property_inputType addsTo it Property_allowedValues addsTo it Property_documentation addsTo it Property_values_from addsTo it Property_showInGrid addsTo it Property_isLink addsTo it Property_nullable addsTo it # properties of Property # property name Property_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it 1 is sortPos of it true is primaryKey of it true is mandatory of it 50 is size of it false is uploadable of it "The name of the property" is documentation of it false is isLink of it "Property" is topic of it # property label Property_label isA Property "label" is name of it "label" is label of it "Text" is type of it 2 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The label to be shown when in a form" is documentation of it false is isLink of it "Property" is topic of it # property type Property_type isA Property "type" is name of it "type" is label of it "Page" is type of it 3 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "Special:Types/Text" is defaultValue of it "dropdown" is inputType of it "The type of a Property" is documentation of it "property=Property_type" is values_from of it true is showInGrid of it false is isLink of it "Property" is topic of it # property index Property_index isA Property "index" is name of it "index" is label of it "Number" is type of it 4 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "A positive number that specifies at which position of a Topic the given property should show. The first property to show has the index 1 each following property has an index that is +1 of the previous." is documentation of it true is showInGrid of it false is isLink of it "Property" is topic of it # property sortPos Property_sortPos isA Property "sortPos" is name of it "sortPos" is label of it "Number" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 3 is size of it false is uploadable of it "If none empty >0 this is the position in the sort clause of this property. This is used when displaying list of the topic as the default sort order and it is used for selecting topics . E.g. Sortpos 1 for attribute lastname and sortpos 2 for attribute firstname leads to sort by lastname,firstname" is documentation of it false is isLink of it "Property" is topic of it # property primaryKey Property_primaryKey isA Property "primaryKey" is name of it "primary key" is label of it "Boolean" is type of it 6 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "is this property a primary key of it's topic?" is documentation of it false is isLink of it "Property" is topic of it # property mandatory Property_mandatory isA Property "mandatory" is name of it "mandatory" is label of it "Boolean" is type of it 7 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "Specifies that this field must be filled in by the user. Note: mandatory should not be used in conjunction with hidden. Use of both in any field will cause the mandatory check on any field to fail when the form is saved. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag" is documentation of it false is isLink of it "Property" is topic of it # property namespace Property_namespace isA Property "namespace" is name of it "namespace" is label of it "Text" is type of it 8 is index of it false is primaryKey of it false is mandatory of it 20 is size of it false is uploadable of it "namespace prefix" is documentation of it false is isLink of it "Property" is topic of it # property size Property_size isA Property "size" is name of it "size" is label of it "Number" is type of it 9 is index of it false is primaryKey of it false is mandatory of it 3 is size of it false is uploadable of it "the display size of the field for the property" is documentation of it false is isLink of it "Property" is topic of it # property uploadable Property_uploadable isA Property "uploadable" is name of it "uploadable" is label of it "Boolean" is type of it 10 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "Specifies that a link should be placed next to this field, that opens a popup window to let the user upload a file; see 'Uploading files', below. See * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Uploading_files The type of the target property needs to be Page for this to work" is documentation of it false is isLink of it "Property" is topic of it # property defaultValue Property_defaultValue isA Property "defaultValue" is name of it "default" is label of it "Code" is type of it 11 is index of it false is primaryKey of it false is mandatory of it 80 is size of it false is uploadable of it "default value - Specifies a default value for this field. For date-related fields, default=now will set the value to the current date and possibly time. For text fields, default=current user will set the value to the username of the user adding this page. For the checkbox input type, default=yes will check the checkbox by default. (The 'checkboxes' input type, on the other hand, like the 'listbox' type, requires specifying the actual values, like default=Value A, Value C.) You can also include templates, parser functions, and magic words within the 'default=' value. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag (default)" is documentation of it false is isLink of it "Property" is topic of it # property inputType Property_inputType isA Property "inputType" is name of it "inputType" is label of it "Text" is type of it 12 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "dropdown" is inputType of it "text, combobox, dropdown, textarea, tree, datetime, datepicker, timepicker, datetimepicker, menuselect,two listboxes, datecheck, regexp, radiobutton, googlemaps" is allowedValues of it "see * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>input type - Specifies the type of input this field will have in the form. If a field corresponds to an SMW property or Cargo field, the form will usually have the correct input type by default; otherwise the default is text. If the corresponding SMW property, or Cargo field, cannot be automatically determined, you can use the parameter 'property', or the parameters 'cargo table' and 'cargo field', to manually specify it (see below). The allowed set of input types is different for every semantic property type; see below for the full list of options. * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Allowed_input_types_for_data_types * http://www.mediawiki.org/wiki/Extension:Semantic_Forms_Inputs" is documentation of it false is isLink of it "Property" is topic of it # property allowedValues Property_allowedValues isA Property "allowedValues" is name of it "allowedValues" is label of it "Text" is type of it 13 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "There are two ways to specified allowed Values: # https://semantic-mediawiki.org/wiki/Help:Special_property_Allows_value. <br>Use [[Property:Allows_value]] to see which values are allowed for certain properties # http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>values=possible values - Specifies a set of either possible values or autocompletion values (depending on the input type) that this field can have, overriding whatever set of values may have been set from the Semantic MediaWiki property. This set of values is separated by commas by default, but the delimiter can be modified using the delimiter= parameter. If you specify any values method number 2 will be used here which might override any allowed Values specified with method number 1." is documentation of it false is isLink of it "Property" is topic of it # property documentation Property_documentation isA Property "documentation" is name of it "documentation" is label of it "Text" is type of it 14 is index of it false is primaryKey of it false is mandatory of it 500 is size of it false is uploadable of it "textarea" is inputType of it "The documentation for a property" is documentation of it false is isLink of it "Property" is topic of it # property values_from Property_values_from isA Property "values_from" is name of it "values from" is label of it "Code" is type of it 15 is index of it false is primaryKey of it false is mandatory of it 200 is size of it false is uploadable of it "textarea" is inputType of it "Specifies where to get the possible values to be displayed in a form from see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * values from property=property name - Similar to values=, but gets its values from the the set of all values that a certain SMW property points to. * values from category=category name - Similar to values=, but gets its values from the names of all pages belonging to a specific category. * values from concept=concept name - Similar to values=, but gets its values from the names of all pages belonging to a specific concept. * values from namespace=namespace name - Similar to values=, but gets its values from the names of all pages belonging to a specific namespace. (To get values from the main namespace, use 'Main' for the namespace name, or just leave it blank.) * values from url=URL identifier - Used only for autocompletion. Specifies that autocompletion should be based on the values retrieved from an outside URL; see Autocompleting on outside values for how to do this. * values from external data=variable name - Used for autocompletion. You need to have theExternal Data extension installed to be able to use this parameter. It specifies that autocompletion should be based on the data retrieved from an outside source. A large number of data sources are supported, including web APIs, regular wiki pages, files on the local server, databases and LDAP directories. See Autocompletion using External Data." is documentation of it false is isLink of it "Property" is topic of it # property showInGrid Property_showInGrid isA Property "showInGrid" is name of it "showInGrid" is label of it "Boolean" is type of it 16 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "true" is defaultValue of it "I am true if this property is displayed in the default list of properties for my topic as a column" is documentation of it true is showInGrid of it false is isLink of it "Property" is topic of it # property isLink Property_isLink isA Property "isLink" is name of it "isLink" is label of it "Boolean" is type of it 17 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "true if this Property is derived form a Link. It will not be exported to SiDIF separately and automatically be added by the Property Generator" is documentation of it false is showInGrid of it false is isLink of it "Property" is topic of it # property nullable Property_nullable isA Property "nullable" is name of it "allow nulls?" is label of it "Boolean" is type of it 18 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "false" is defaultValue of it "should nullvalues be allowed and value set to NULL when empty?" is documentation of it false is showInGrid of it false is isLink of it "Property" is topic of it # #SMW_Type # SMW_Type isA Topic "SMW_Type" is name of it "SMW_Types" is pluralName of it "an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/false values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes" is documentation of it "see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes" is wikiDocumentation of it "File:Component.png" is icon of it "/images/4/40/Component.png" is iconUrl of it "subobject" is defaultstoremode of it "MetaModel" is context of it SMW_Type_type addsTo it SMW_Type_documentation addsTo it SMW_Type_helppage addsTo it SMW_Type_typepage addsTo it SMW_Type_javaType addsTo it SMW_Type_id addsTo it SMW_Type_type isA Property "type" is name of it "type" is label of it "Text" is type of it 1 is index of it true is primaryKey of it true is mandatory of it 50 is size of it false is uploadable of it "The Semantic MediaWiki type without the prefix e.g. Text, Number, Boolean" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_documentation isA Property "documentation" is name of it "documentation" is label of it "Text" is type of it 2 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The documentation of this Semantic Media Wiki type" is documentation of it false is isLink of it "SMW_Type" is topic of it # property id SMW_Type_id isA Property "id" is name of it "id" is label of it "Text" is type of it 3 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "SMW internal id of the type" is documentation of it true is showInGrid of it false is isLink of it "SMW_Type" is topic of it SMW_Type_helppage isA Property "helppage" is name of it "helppage" is label of it "URL" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The url of the 'official' documentation page of this type" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_typepage isA Property "typepage" is name of it "typepage" is label of it "Page" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The Semantic Media Wiki Special page for this specific type e.g. Special:Types/Text, Special:Types/Boolean, Special:Types/Date, Special:Types/Number, Special:Types/Page" is documentation of it false is isLink of it "SMW_Type" is topic of it SMW_Type_javaType isA Property "javaType" is name of it "java Type" is label of it "Text" is type of it 6 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "Java mapping of this type" is documentation of it false is isLink of it "SMW_Type" is topic of it # #Topic # Topic isA Topic "Topic" is name of it "Topics" is pluralName of it "A Topic is a Concept/Class/Thing/Entity" is documentation of it "A Topic is a Concept/Class/Thing/Entity" is wikiDocumentation of it "File:Index.png" is icon of it "/images/a/ae/Index.png" is iconUrl of it "property" is defaultstoremode of it false is cargo of it "MetaModel" is context of it Topic_name addsTo it Topic_pluralName addsTo it Topic_icon addsTo it Topic_iconUrl addsTo it Topic_documentation addsTo it Topic_wikiDocumentation addsTo it Topic_defaultstoremode addsTo it Topic_listLimit addsTo it Topic_cargo addsTo it Topic_headerTabs addsTo it # properties of Topic # property name Topic_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it true is primaryKey of it true is mandatory of it 80 is size of it false is uploadable of it "The name of the topic" is documentation of it false is isLink of it "Topic" is topic of it # property pluralName Topic_pluralName isA Property "pluralName" is name of it "pluralName" is label of it "Text" is type of it 2 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The plural of a topic name. E.g. for the topic 'City' the pluralName is 'Cities'. If no pluralName is specified an 's' is appended. E.g. for the topic 'Book' the default pluralName is 'Books'" is documentation of it false is isLink of it "Topic" is topic of it # property icon Topic_icon isA Property "icon" is name of it "icon" is label of it "Page" is type of it 3 is index of it false is primaryKey of it false is mandatory of it "File" is namespace of it 55 is size of it true is uploadable of it "an Icon for the topic" is documentation of it false is showInGrid of it false is isLink of it "Topic" is topic of it # property iconUrl Topic_iconUrl isA Property "iconUrl" is name of it "icon Url" is label of it "URL" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 80 is size of it false is uploadable of it "text" is inputType of it "the url of an icon" is documentation of it false is showInGrid of it false is isLink of it "Topic" is topic of it # property documentation Topic_documentation isA Property "documentation" is name of it "documentation" is label of it "Text" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The plaintext documentation of a Topic. Please do not use markup for this." is documentation of it false is isLink of it "Topic" is topic of it # property wikiDocumentation Topic_wikiDocumentation isA Property "wikiDocumentation" is name of it "wikiDocumentation" is label of it "Text" is type of it 6 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "Documentation of the Topic using MediaWiki / Semantic Mediawiki markup" is documentation of it false is isLink of it "Topic" is topic of it # property defaultstoremode Topic_defaultstoremode isA Property "defaultstoremode" is name of it "default storemode" is label of it "Text" is type of it 7 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "radiobutton" is inputType of it "none,property,subobject" is allowedValues of it "The default storemode of the topic" is documentation of it false is isLink of it "Topic" is topic of it # property listLimit Topic_listLimit isA Property "listLimit" is name of it "list Limit" is label of it "Number" is type of it 8 is index of it false is primaryKey of it false is mandatory of it 4 is size of it false is uploadable of it "200" is defaultValue of it "What is the default #ask list limit for this Topic?" is documentation of it true is showInGrid of it false is isLink of it "Topic" is topic of it # property cargo Topic_cargo isA Property "cargo" is name of it "use cargo" is label of it "Boolean" is type of it 9 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "Should the Topic be stored using the [https://www.mediawiki.org/wiki/Extension:Cargo Cargo Extension?]" is documentation of it false is showInGrid of it false is isLink of it "Topic" is topic of it # property headerTabs Topic_headerTabs isA Property "headerTabs" is name of it "headerTabs" is label of it "Boolean" is type of it 10 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "shall the forms be generated with header tabs?" is documentation of it true is showInGrid of it false is isLink of it "Topic" is topic of it # #Action # Action isA Topic "Action" is name of it "Actions" is pluralName of it "An action/function/operation to be performed" is documentation of it "An action/function/operation to be performed" is wikiDocumentation of it "File:Actionicon.png" is icon of it "/images/e/eb/Actionicon.png" is iconUrl of it "subobject" is defaultstoremode of it false is cargo of it "MetaModel" is context of it Action_name addsTo it Action_servicetype addsTo it Action_service addsTo it Action_inputtype addsTo it Action_input addsTo it Action_actionpage addsTo it Action_output addsTo it Action_engine addsTo it Action_author addsTo it Action_since addsTo it Action_comment addsTo it # properties of Action # property name Action_name isA Property "name" is name of it "name" is label of it "Text" is type of it 0 is index of it true is primaryKey of it true is mandatory of it false is uploadable of it "The name of the Action" is documentation of it false is isLink of it "Action" is topic of it # property servicetype Action_servicetype isA Property "servicetype" is name of it "servicetype" is label of it "Text" is type of it 1 is index of it false is primaryKey of it true is mandatory of it false is uploadable of it "WikiTask" is defaultValue of it "radiobutton" is inputType of it "WikiTask" is allowedValues of it "The type of the service" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property service Action_service isA Property "service" is name of it "service" is label of it "URL" is type of it 2 is index of it "The service to be used" is documentation of it false is isLink of it "Action" is topic of it # property inputtype Action_inputtype isA Property "inputtype" is name of it "inputtype" is label of it "Text" is type of it 3 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "Page" is defaultValue of it "radiobutton" is inputType of it "Query,Page,URL" is allowedValues of it "What is the type of the input?" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property input Action_input isA Property "input" is name of it "input" is label of it "Code" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 300 is size of it false is uploadable of it "textarea" is inputType of it "the decription of the input e.g. a page name, url or SMW ask query" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property actionpage Action_actionpage isA Property "actionpage" is name of it "actionpage" is label of it "Page" is type of it 5 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "Property:Action actionpage" is defaultValue of it "What page will 'steer' this action?" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property output Action_output isA Property "output" is name of it "output" is label of it "Text" is type of it 6 is index of it "where the output of the action should go" is documentation of it false is isLink of it "Action" is topic of it # property engine Action_engine isA Property "engine" is name of it "engine" is label of it "Text" is type of it 7 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "rythm" is defaultValue of it "radiobutton" is inputType of it "rythm,freemarker" is allowedValues of it "the template engine to be used either [[Rythm]] or [[Freemarker]]" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property author Action_author isA Property "author" is name of it "author" is label of it "Page" is type of it 8 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "combobox" is inputType of it "the author of this action" is documentation of it "namespace=User" is values_from of it true is showInGrid of it false is isLink of it "Action" is topic of it # property since Action_since isA Property "since" is name of it "since" is label of it "Date" is type of it 9 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "datepicker" is inputType of it "since when is this action available?" is documentation of it true is showInGrid of it false is isLink of it "Action" is topic of it # property comment Action_comment isA Property "comment" is name of it "comment" is label of it "Text" is type of it 10 is index of it false is primaryKey of it false is mandatory of it 400 is size of it false is uploadable of it "textarea" is inputType of it "a comment for the action" is documentation of it false is showInGrid of it false is isLink of it "Action" is topic of it # # #TopicLink # TopicLink isA Topic "TopicLink" is name of it "TopicLinks" is pluralName of it "A TopicLink links two Concepts" is documentation of it "A TopicLink links two [[Concept:Topic]]s" is wikiDocumentation of it "File:Link.png" is icon of it "/images/f/fd/Link.png" is iconUrl of it "subobject" is defaultstoremode of it "MetaModel" is context of it TopicLink_name addsTo it TopicLink_source addsTo it TopicLink_sourceRole addsTo it TopicLink_sourceMultiple addsTo it TopicLink_sourceDocumentation addsTo it TopicLink_target addsTo it TopicLink_targetRole addsTo it TopicLink_targetMultiple addsTo it TopicLink_targetDocumentation addsTo it TopicLink_masterDetail addsTo it TopicLink_name isA Property "name" is name of it "name" is label of it "Text" is type of it 1 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it "The name of the topic link" is documentation of it false is isLink of it "TopicLink" is topic of it TopicLink_source isA Property "source" is name of it "source" is label of it "Page" is type of it 2 is index of it false is primaryKey of it true is mandatory of it 50 is size of it false is uploadable of it "dropdown" is inputType of it "the source of a topic Link" is documentation of it "concept=Topic" is values_from of it false is isLink of it "TopicLink" is topic of it TopicLink_sourceRole isA Property "sourceRole" is name of it "sourceRole" is label of it "Text" is type of it 3 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_sourceMultiple isA Property "sourceMultiple" is name of it "sourceMultiple" is label of it "Boolean" is type of it 4 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_sourceDocumentation isA Property "sourceDocumentation" is name of it "source Doc" is label of it "Text" is type of it 5 is index of it false is primaryKey of it false is mandatory of it 300 is size of it false is uploadable of it "textarea" is inputType of it "Documentation for the source Role" is documentation of it false is isLink of it "TopicLink" is topic of it TopicLink_target isA Property "target" is name of it "target" is label of it "Page" is type of it 6 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_targetRole isA Property "targetRole" is name of it "targetRole" is label of it "Text" is type of it 7 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_targetMultiple isA Property "targetMultiple" is name of it "sourceMultiple" is label of it "Boolean" is type of it 8 is index of it false is primaryKey of it false is mandatory of it 50 is size of it false is uploadable of it false is isLink of it "TopicLink" is topic of it TopicLink_targetDocumentation isA Property "targetDocumentation" is name of it "target Doc" is label of it "Text" is type of it 9 is index of it false is primaryKey of it false is mandatory of it 300 is size of it false is uploadable of it "textarea" is inputType of it "Documentation for the target Role" is documentation of it false is isLink of it "TopicLink" is topic of it TopicLink_masterDetail isA Property "masterDetail" is name of it "masterDetail" is label of it "Boolean" is type of it 10 is index of it false is primaryKey of it false is mandatory of it false is uploadable of it "should the details be displayed in the same form and template? If no * for a 1:1 link there will be a linking attribute used and that can be selected. * for a 1:n link a link to the list of neighbours will be displayed if yes * for a 1:1 link the details * for a 1:n link" is documentation of it false is isLink of it "TopicLink" is topic of it # # TopicLinks # TopicLinks_containedProperties isA TopicLink "containedProperties" is name of it "topic" is sourceRole of it false is sourceMultiple of it "Topic" is source of it "properties" is targetRole of it true is targetMultiple of it "Property" is target of it TopicLinks_containedTopics isA TopicLink "containedTopics" is name of it "context" is sourceRole of it false is sourceMultiple of it "Context" is source of it "topics" is targetRole of it true is targetMultiple of it "Topic" is target of it TopicLinks_typeOfProperty isA TopicLink "typeOfProperty" is name of it "usedByProperties" is sourceRole of it true is sourceMultiple of it "Property" is source of it "the properties having this type" is sourceDocumentation of it "smw_type" is targetRole of it false is targetMultiple of it "SMW_Type" is target of it false is masterDetail of it "the smw_type being used by this property" is targetDocumentation of it # data Annotation_URI isA SMW_Type "Annotation URI" is type of it "Special:Types/Annotation_URI" is typepage of it "Holds URIs, but has some technical differences during export compared to the 'URL' type" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Annotation_URI" is helppage of it Boolean isA SMW_Type "Boolean" is type of it "Special:Types/Boolean" is typepage of it "Holds boolean (true/false) values" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Boolean" is helppage of it Code isA SMW_Type "Code" is type of it "Special:Types/Code" is typepage of it "Holds technical, pre-formatted texts (similar to type Text)" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Code" is helppage of it Date isA SMW_Type "Date" is type of it "Special:Types/Date" is typepage of it "Holds particular points in time" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Date" is helppage of it Email isA SMW_Type "Email" is type of it "Special:Types/Email" is typepage of it "Holds e-mail addresses" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Email" is helppage of it Geographic_coordinate isA SMW_Type "Geographic coordinate" is type of it "Special:Types/Geographic_coordinate" is typepage of it "Holds coordinates describing geographic locations" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Geographic_coordinate" is helppage of it Number isA SMW_Type "Number" is type of it "Special:Types/Number" is typepage of it "Holds integer and decimal numbers, with an optional exponent" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Number" is helppage of it Page isA SMW_Type "Page" is type of it "Special:Types/Page" is typepage of it "Holds names of wiki pages, and displays them as a link" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Page" is helppage of it Quantity isA SMW_Type "Quantity" is type of it "Special:Types/Quantity" is typepage of it "Holds values that describe quantities, containing both a number and a unit" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Quantity" is helppage of it Record isA SMW_Type "Record" is type of it "Special:Types/Record" is typepage of it "Allows saving compound property values that consist of a short list of values with fixed type and order" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Record" is helppage of it Telephone_number isA SMW_Type "Telephone number" is type of it "Special:Types/Telephone_number" is typepage of it "Holds international telephone numbers based on the [https://tools.ietf.org/html/rfc3966 RFC 3966 standard]" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Telephone_number" is helppage of it Temperature isA SMW_Type "Temperature" is type of it "Special:Types/Temperature" is typepage of it "Holds temperature values (similar to type Quantity)" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Temperature" is helppage of it Text isA SMW_Type "Text" is type of it "Special:Types/Text" is typepage of it "Holds text of arbitrary length" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_Text" is helppage of it URL isA SMW_Type "URL" is type of it "Special:Types/URL" is typepage of it "Holds URIs, URNs and URLs" is documentation of it "https://semantic-mediawiki.org/wiki/Help:Type_URL" is helppage of it </source> <headertabs/> f0126604ea519b89da34fae2f0fb4e14379d6983 Property:Property allowedValues 102 50 341 90 2017-11-05T18:05:15Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:15Z wikitext text/x-wiki {{Property |name=allowedValues |label=allowedValues |documentation=There are two ways to specified allowed Values: # https://semantic-mediawiki.org/wiki/Help:Special_property_Allows_value. <br>Use [[Property:Allows_value]] to see which values are allowed for certain properties # http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>values=possible values - Specifies a set of either possible values or autocompletion values (depending on the input type) that this field can have, overriding whatever set of values may have been set from the Semantic MediaWiki property. This set of values is separated by commas by default, but the delimiter can be modified using the delimiter= parameter. If you specify any values method number 2 will be used here which might override any allowed Values specified with method number 1. |type=Special:Types/Text |index=13 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 2ac36da338e113089c0e2b9a50720703cc61b2ad Property:Property defaultValue 102 51 342 91 2017-11-05T18:05:15Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:15Z wikitext text/x-wiki {{Property |name=defaultValue |label=default |documentation=default value - Specifies a default value for this field. For date-related fields, default=now will set the value to the current date and possibly time. For text fields, default=current user will set the value to the username of the user adding this page. For the checkbox input type, default=yes will check the checkbox by default. (The 'checkboxes' input type, on the other hand, like the 'listbox' type, requires specifying the actual values, like default=Value A, Value C.) You can also include templates, parser functions, and magic words within the 'default=' value. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag (default) |type=Special:Types/Code |index=11 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=80 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Code]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 30db847586c121c7cf2d4d23b654efb3cd47b767 Property:Property documentation 102 52 343 92 2017-11-05T18:05:16Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:16Z wikitext text/x-wiki {{Property |name=documentation |label=documentation |documentation=The documentation for a property |type=Special:Types/Text |index=14 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=500 |uploadable=false |defaultValue= |inputType=textarea |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 75bccc7858640c7332d83bc356c741b6c9b05635 Property:Property inputType 102 53 344 93 2017-11-05T18:05:16Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:16Z wikitext text/x-wiki {{Property |name=inputType |label=inputType |documentation=see * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>input type - Specifies the type of input this field will have in the form. If a field corresponds to an SMW property or Cargo field, the form will usually have the correct input type by default; otherwise the default is text. If the corresponding SMW property, or Cargo field, cannot be automatically determined, you can use the parameter 'property', or the parameters 'cargo table' and 'cargo field', to manually specify it (see below). The allowed set of input types is different for every semantic property type; see below for the full list of options. * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Allowed_input_types_for_data_types * http://www.mediawiki.org/wiki/Extension:Semantic_Forms_Inputs |type=Special:Types/Text |index=12 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType=dropdown |allowedValues=text, combobox, dropdown, textarea, tree, datetime, datepicker, timepicker, datetimepicker, menuselect,two listboxes, datecheck, regexp, radiobutton, googlemaps |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 6635932d195b9e8cbdeeafd77564a217918b426d Property:Property label 102 54 345 94 2017-11-05T18:05:16Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:16Z wikitext text/x-wiki {{Property |name=label |label=label |documentation=The label to be shown when in a form |type=Special:Types/Text |index=2 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 85b1dad554dad747436f0bf9da501ae0425f74dd Property:Property mandatory 102 55 346 95 2017-11-05T18:05:17Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:17Z wikitext text/x-wiki {{Property |name=mandatory |label=mandatory |documentation=Specifies that this field must be filled in by the user. Note: mandatory should not be used in conjunction with hidden. Use of both in any field will cause the mandatory check on any field to fail when the form is saved. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag |type=Special:Types/Boolean |index=7 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=4 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 41e19f3549c43db8d77a34b0770308a775638a3a Property:Property name 102 56 347 96 2017-11-05T18:05:17Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:17Z wikitext text/x-wiki {{Property |name=name |label=name |documentation=The name of the property |type=Special:Types/Text |index=1 |sortPos=1 |primaryKey=true |mandatory=true |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} af54768d0f71ef145b6051b37a4dd0399422161a Property:Property type 102 57 348 200 2017-11-05T18:05:18Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:17Z wikitext text/x-wiki {{Property |name=type |label=type |documentation=The type of a Property |type=Special:Types/Page |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue=Special:Types/Text |inputType=dropdown |allowedValues= |values_from=property=Property_type |showInGrid=true |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 1b276dd5911f55ed0fe44d49ac3a2e847af0aa96 Property:Property primaryKey 102 58 349 98 2017-11-05T18:05:18Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:18Z wikitext text/x-wiki {{Property |name=primaryKey |label=primary key |documentation=is this property a primary key of it's topic? |type=Special:Types/Boolean |index=6 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=4 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} f97437ea3b6975e9460502883afe9cbeda081373 Property:Property namespace 102 59 350 99 2017-11-05T18:05:18Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:18Z wikitext text/x-wiki {{Property |name=namespace |label=namespace |documentation=namespace prefix |type=Special:Types/Text |index=8 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=20 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 0a136e59b8f2cb2ef1ce66d8e30f69217aac230d Property:Property size 102 60 351 100 2017-11-05T18:05:19Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:18Z wikitext text/x-wiki {{Property |name=size |label=size |documentation=the display size of the field for the property |type=Special:Types/Number |index=9 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=3 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 9fb8bfd3e0f75da7d7c01fcf39e60e47e42bfe91 Property:Property index 102 61 352 101 2017-11-05T18:05:19Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:19Z wikitext text/x-wiki {{Property |name=index |label=index |documentation=A positive number that specifies at which position of a Topic the given property should show. The first property to show has the index 1 each following property has an index that is +1 of the previous. |type=Special:Types/Number |index=4 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 95d162fc8d195abda009d6ff7375f6865223c799 Property:Property sortPos 102 62 353 102 2017-11-05T18:05:19Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:19Z wikitext text/x-wiki {{Property |name=sortPos |label=sortPos |documentation=If none empty >0 this is the position in the sort clause of this property. This is used when displaying list of the topic as the default sort order and it is used for selecting topics . E.g. Sortpos 1 for attribute lastname and sortpos 2 for attribute firstname leads to sort by lastname,firstname |type=Special:Types/Number |index=5 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=3 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 2923f25c0c978f169fe905e531d5a1c3b624c4da Property:Topic cargo 102 63 354 103 2017-11-05T18:05:20Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:19Z wikitext text/x-wiki {{Property |name=cargo |label=use cargo |documentation=Should the Topic be stored using the [https://www.mediawiki.org/wiki/Extension:Cargo Cargo Extension?] |type=Special:Types/Boolean |index=9 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 8f269174118f789690e366b4c366da579dbd063f Property:Property showInGrid 102 64 355 104 2017-11-05T18:05:20Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:20Z wikitext text/x-wiki {{Property |name=showInGrid |label=showInGrid |documentation=I am true if this property is displayed in the default list of properties for my topic as a column |type=Special:Types/Boolean |index=16 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue=true |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 6b06f8bc98c81488d4c39e57b8835561cd3e81df Property:Property isLink 102 65 356 105 2017-11-05T18:05:20Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:20Z wikitext text/x-wiki {{Property |name=isLink |label=isLink |documentation=true if this Property is derived form a Link. It will not be exported to SiDIF separately and automatically be added by the Property Generator |type=Special:Types/Boolean |index=17 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} db634112b8d31523b8466ee2d4f130254f29d459 Property:Property topic 102 66 357 106 2017-11-05T18:05:21Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:20Z wikitext text/x-wiki {{Property |name=topic |label=topic |documentation= |type=Special:Types/Page |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType=dropdown |allowedValues= |values_from=concept=Topic |showInGrid= |isLink=true |topic=Concept:Property |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 80c1fe4abb9e0e2e33bedd726401c0fa4c68f7e3 Property:Property values from 102 67 358 107 2017-11-05T18:05:21Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:21Z wikitext text/x-wiki {{Property |name=values_from |label=values from |documentation=Specifies where to get the possible values to be displayed in a form from see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * values from property=property name - Similar to values=, but gets its values from the the set of all values that a certain SMW property points to. * values from category=category name - Similar to values=, but gets its values from the names of all pages belonging to a specific category. * values from concept=concept name - Similar to values=, but gets its values from the names of all pages belonging to a specific concept. * values from namespace=namespace name - Similar to values=, but gets its values from the names of all pages belonging to a specific namespace. (To get values from the main namespace, use 'Main' for the namespace name, or just leave it blank.) * values from url=URL identifier - Used only for autocompletion. Specifies that autocompletion should be based on the values retrieved from an outside URL; see Autocompleting on outside values for how to do this. * values from external data=variable name - Used for autocompletion. You need to have theExternal Data extension installed to be able to use this parameter. It specifies that autocompletion should be based on the data retrieved from an outside source. A large number of data sources are supported, including web APIs, regular wiki pages, files on the local server, databases and LDAP directories. See Autocompletion using External Data. |type=Special:Types/Code |index=15 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=200 |uploadable=false |defaultValue= |inputType=textarea |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Code]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} d033e7eae12ed52710718919daa277c3e49651c2 Property:Property uploadable 102 68 359 108 2017-11-05T18:05:21Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:21Z wikitext text/x-wiki {{Property |name=uploadable |label=uploadable |documentation=Specifies that a link should be placed next to this field, that opens a popup window to let the user upload a file; see 'Uploading files', below. See * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Uploading_files The type of the target property needs to be Page for this to work |type=Special:Types/Boolean |index=10 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=4 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 608e000d7112ba3b6257a25321704770dadd63d0 Property:Topic defaultstoremode 102 69 360 109 2017-11-05T18:05:22Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:22Z wikitext text/x-wiki {{Property |name=defaultstoremode |label=default storemode |documentation=The default storemode of the topic |type=Special:Types/Text |index=7 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType=radiobutton |allowedValues=none,property,subobject |values_from= |showInGrid= |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 1660e2b8b447736804ebad7cf2ef1cd1bb97080e Property:Topic documentation 102 70 361 110 2017-11-05T18:05:22Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:22Z wikitext text/x-wiki {{Property |name=documentation |label=documentation |documentation=The plaintext documentation of a Topic. Please do not use markup for this. |type=Special:Types/Text |index=5 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} ee51b0848c04ad45f51f5937c5f9c59045a401a5 Property:Topic name 102 71 362 201 2017-11-05T18:05:23Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:22Z wikitext text/x-wiki {{Property |name=name |label=name |documentation=The name of the topic |type=Special:Types/Text |index=1 |sortPos= |primaryKey=true |mandatory=true |namespace= |size=80 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} b634d7a02f74b3876b65d69578cc404b228afed0 Property:Topic listLimit 102 150 363 202 2017-11-05T18:05:23Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:23Z wikitext text/x-wiki {{Property |name=listLimit |label=list Limit |documentation=What is the default #ask list limit for this Topic? |type=Special:Types/Number |index=8 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=4 |uploadable=false |defaultValue=200 |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} b7422a20dbf94efe69f1b113dc17d397209ac83d Property:Topic pluralName 102 72 364 112 2017-11-05T18:05:23Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:23Z wikitext text/x-wiki {{Property |name=pluralName |label=pluralName |documentation=The plural of a topic name. E.g. for the topic 'City' the pluralName is 'Cities'. If no pluralName is specified an 's' is appended. E.g. for the topic 'Book' the default pluralName is 'Books' |type=Special:Types/Text |index=2 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} d0a0f97b8f7ea3801a536296001c6abfdd1357d2 Property:Topic wikiDocumentation 102 73 365 113 2017-11-05T18:05:24Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:23Z wikitext text/x-wiki {{Property |name=wikiDocumentation |label=wikiDocumentation |documentation=Documentation of the Topic using MediaWiki / Semantic Mediawiki markup |type=Special:Types/Text |index=6 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} ab5c732059e2848f0f739e3c0ecc61969761fde2 Property:Topic icon 102 74 366 114 2017-11-05T18:05:24Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:24Z wikitext text/x-wiki {{Property |name=icon |label=icon |documentation=an Icon for the topic |type=Special:Types/Page |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace=File |size=55 |uploadable=true |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} c3dc2e7c498d3bb24ed2c88aa0fbea4a947f293d Property:Topic iconUrl 102 75 367 115 2017-11-05T18:05:24Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:24Z wikitext text/x-wiki {{Property |name=iconUrl |label=icon Url |documentation=the url of an icon |type=Special:Types/URL |index=4 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=80 |uploadable=false |defaultValue= |inputType=text |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::URL]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 1e424491b2ed3588ba2f5fd1530c4f7ffa633bdb Property:Topic context 102 76 368 116 2017-11-05T18:05:25Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:24Z wikitext text/x-wiki {{Property |name=context |label=context |documentation= |type=Special:Types/Page |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType=dropdown |allowedValues= |values_from=concept=Context |showInGrid= |isLink=true |topic=Concept:Topic |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 62ca7e4017a722de8e5b68f3214f2053a115d593 Property:Context name 102 77 369 117 2017-11-05T18:05:25Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:25Z wikitext text/x-wiki {{Property |name=name |label=name |documentation=Name of the context |type=Special:Types/Text |index=1 |sortPos=1 |primaryKey=true |mandatory=true |namespace= |size=80 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Context |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 46f1714ee50e441c6f2478b2acb9138d48fefeb1 Property:Context since 102 151 370 203 2017-11-05T18:05:25Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:25Z wikitext text/x-wiki {{Property |name=since |label=since |documentation=since when is this context available? |type=Special:Types/Date |index=2 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType=datepicker |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Context |storemode=property }} [[Has type::Date]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 2edc80c72a39dd841df2c154a104270e599297a7 Property:Context master 102 152 371 204 2017-11-05T18:05:26Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:25Z wikitext text/x-wiki {{Property |name=master |label=master |documentation=what is the original master source of this context |type=Special:Types/URL |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Context |storemode=property }} [[Has type::URL]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} b9b7faa971210e485e444f160f8c03afc2012ffc Property:TopicLink name 102 78 372 118 2017-11-05T18:05:26Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:26Z wikitext text/x-wiki {{Property |name=name |label=name |documentation=The name of the topic link |type=Special:Types/Text |index=1 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} bc559cec22e9aaca1c83d779c8c22d7e0eec2b61 Property:TopicLink source 102 79 373 119 2017-11-05T18:05:26Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:26Z wikitext text/x-wiki {{Property |name=source |label=source |documentation=the source of a topic Link |type=Special:Types/Page |index=2 |sortPos= |primaryKey=false |mandatory=true |namespace= |size=50 |uploadable=false |defaultValue= |inputType=dropdown |allowedValues= |values_from=concept=Topic |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} b173c8b15153de03ec5d5e2d30d578210f3d6381 Property:TopicLink sourceMultiple 102 80 374 120 2017-11-05T18:05:27Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:26Z wikitext text/x-wiki {{Property |name=sourceMultiple |label=sourceMultiple |documentation= |type=Special:Types/Boolean |index=4 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 4557b6777c333c592cd9183371182f778d2b5bd6 Property:TopicLink sourceRole 102 81 375 121 2017-11-05T18:05:27Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:27Z wikitext text/x-wiki {{Property |name=sourceRole |label=sourceRole |documentation= |type=Special:Types/Text |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} e9c6a99db06de18c04e0a8c2ec6e0719a2ff3796 Property:TopicLink sourceDocumentation 102 82 376 122 2017-11-05T18:05:27Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:27Z wikitext text/x-wiki {{Property |name=sourceDocumentation |label=source Doc |documentation=Documentation for the source Role |type=Special:Types/Text |index=5 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=300 |uploadable=false |defaultValue= |inputType=textarea |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} d9470b1a9a837b46291a8218f56af0fdf10857c6 Property:TopicLink target 102 83 377 123 2017-11-05T18:05:28Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:27Z wikitext text/x-wiki {{Property |name=target |label=target |documentation= |type=Special:Types/Page |index=6 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 2470779ec4cc7b8fd83785b0f1fcacc5e1c2518f Property:TopicLink targetMultiple 102 84 378 124 2017-11-05T18:05:28Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:28Z wikitext text/x-wiki {{Property |name=targetMultiple |label=sourceMultiple |documentation= |type=Special:Types/Boolean |index=8 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 1414d12bf02bad970a1beaf3d8bcefd36cd65773 Property:TopicLink targetRole 102 85 379 125 2017-11-05T18:05:28Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:28Z wikitext text/x-wiki {{Property |name=targetRole |label=targetRole |documentation= |type=Special:Types/Text |index=7 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} a202c12ad61d89673f05720f5f9839803c54f00f Property:TopicLink targetDocumentation 102 86 380 126 2017-11-05T18:05:29Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:28Z wikitext text/x-wiki {{Property |name=targetDocumentation |label=target Doc |documentation=Documentation for the target Role |type=Special:Types/Text |index=9 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=300 |uploadable=false |defaultValue= |inputType=textarea |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 73a6e2cc2f1dcacc7adaa4203a4e8be8d3d859d6 Property:TopicLink masterDetail 102 87 381 127 2017-11-05T18:05:29Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:29Z wikitext text/x-wiki {{Property |name=masterDetail |label=masterDetail |documentation=should the details be displayed in the same form and template? If no * for a 1:1 link there will be a linking attribute used and that can be selected. * for a 1:n link a link to the list of neighbours will be displayed if yes * for a 1:1 link the details * for a 1:n link |type=Special:Types/Boolean |index=10 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} ef86928356699f319db4a29dcc63b5f9fb2a4542 Property:SMW Type documentation 102 88 382 128 2017-11-05T18:05:29Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:29Z wikitext text/x-wiki {{Property |name=documentation |label=documentation |documentation=The documentation of this Semantic Media Wiki type |type=Special:Types/Text |index=2 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 79415c97299e87d5da7213a0c59bf436069c7f35 Property:SMW Type helppage 102 89 383 129 2017-11-05T18:05:30Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:29Z wikitext text/x-wiki {{Property |name=helppage |label=helppage |documentation=The url of the 'official' documentation page of this type |type=Special:Types/URL |index=4 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::URL]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} bdebdafd6edd8a25fb82a50995e429e763d18365 Property:SMW Type type 102 90 384 130 2017-11-05T18:05:30Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:30Z wikitext text/x-wiki {{Property |name=type |label=type |documentation=The Semantic MediaWiki type without the prefix e.g. Text, Number, Boolean |type=Special:Types/Text |index=1 |sortPos= |primaryKey=true |mandatory=true |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} cf090fef3336ea7ab7b926457937cd64a6accbaf Property:SMW Type typepage 102 91 385 131 2017-11-05T18:05:30Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:30Z wikitext text/x-wiki {{Property |name=typepage |label=typepage |documentation=The Semantic Media Wiki Special page for this specific type e.g. Special:Types/Text, Special:Types/Boolean, Special:Types/Date, Special:Types/Number, Special:Types/Page |type=Special:Types/Page |index=5 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 4e53c4c1f8f499ac468bf1cc94961c4100667a6e Property:SMW Type javaType 102 92 386 132 2017-11-05T18:05:31Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:30Z wikitext text/x-wiki {{Property |name=javaType |label=java Type |documentation=Java mapping of this type |type=Special:Types/Text |index=6 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 543cb058aabd714883e1fa9ee5544df7f79b25c0 Template:! 10 153 387 304 2017-11-05T18:05:31Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:31Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:WikiSlide |next=Template:Bigstock }} This is the "!" template. Allows to have a | in a template by using <pre>{{¡}}</pre> </noinclude><includeonly>|</includeonly> 34f1799e58242a45199cd85865d67a10ee478399 Template:Done 10 94 388 208 2017-11-05T18:05:32Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:32Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:ContextWikitask |next=Template:ExternalImage }} This is the Template ''Done'' === usage === <pre>{{Done}}</pre> {{Done}} <pre>{{Done|size=12}}</pre> {{Done|size=12}} <pre>{{Done|size=36}}</pre> {{Done|size=36}} <pre>{{Done|size=48}}</pre> {{Done|size=48}} [[Category:Template]] </noinclude><includeonly><span style='color:green;font-size:{{{size|24}}}px'>✓</span></includeonly> 9d8378292f3f3a221a647ea0e6e55dc99266af15 Template:Language 10 155 389 211 2017-11-05T18:05:34Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:34Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:IconLink |next=Template:Languagelink }} From http://semantic-mediawiki.org/wiki/Template:Language This template is used for stating the language for some content page. Usage: <pre>{{language|master page=Page title|language=en}}</pre> The parameters have the following meaning: * <tt>master page</tt>: the «main» page about that topic, usually the article with the English documentation for the most current version * <tt>language</tt>: a standard [[Property:language code|language code]] </noinclude><includeonly> {{#ifeq:{{#ask: [[master page::{{{master page}}}]] [[language code::!{{{language}}}]]|format=count}}|0||<div style="text-align: center; background: #F7F7F7; border: 4px solid #B0BFE8; padding: 0.25em; "> {{#switch:{{{language}}}| de = Diese Seite in anderen Sprachen: | fr = Cette page dans d'autres langues : | ja = 他の言語でのこのページ: | nl = Deze pagina in andere talen: | ru = Эта страница на других языках: | zh-hans = 本页面的其他语种: | uk = Ця сторінка на інших мовах: | This page in other languages:}} {{#ask: [[master page::{{{master page}}}]] [[language code::!{{{language}}}]]| ?language code =| link=none| format=list| sep=,&nbsp;| template=languagelink| sort = language code| order = asc| limit = 10| searchlabel = [&hellip;] }} </div>}} <div style="display: none; read: none;"> [[master page::{{{master page}}}]] [[language code::{{{language}}}]] </div> </includeonly> 57c802786288973430f0368c7f124ad2d839ac1a Template:Link 10 19 390 212 2017-11-05T18:05:35Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:34Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:Languagelink |next=Template:PageSequence }} == template purpose == This is a Template for internal and external Links in WikiSon notation. === Motivation === In Mediawiki there are at least five different ways to use a link - we'd like to hide this complexity and add new functionality: # <pre>[[Main Page]]</pre>[[Main Page]] - internal link with no text # <pre>[[Main Page|Start Page]]</pre>[[Main Page|Start Page]] - internal link with text # <pre>[http://partner.bitplan.com] </pre>[http://partner.bitplan.com] - external link as footnote # <pre>[http://partner.bitplan.com BITPlan partner site] </pre>[http://partner.bitplan.com BITPlan partner site] - external link with text # <pre>http://partner.bitplan.com </pre>http://partner.bitplan.com - automatic external link == WikiSon Link == === Motivation === The Concept behind a link is <uml> Class Link { target title } ' BITPlan Corporate identity skin params ' Copyright (c) 2015 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager hide Circle skinparam note{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam package{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam usecase{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam activity{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam classAttribute{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Arial } skinparam class{ BackGroundColor #FFFFFF FontSize 14 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } </uml> This calls for the WikiSon notation <pre> {{Link |target=sometarget |title=sometitle }} </pre> === Link as WikiSon === Using the WikiSon Concept approach the Link Concept is represented via the Wiki [[:Category:Link]]<br> Especially there is a [[List of Links]] page available. Properties set: * {{Link|target=Property:Link targetUrl}} === Examples === <pre> {{Link}} </pre> internal default link to Main Page {{Link}} <pre> {{Link|target=Main Page}} </pre> internal link to Main Page {{Link|target=Main Page}} <pre> {{Link|target=Main Page|title=Main Page}} </pre> internal link to Main Page with title {{Link|target=Main Page|title=Main Page}} <pre> {{Link|target=http://partner.bitplan.com}} </pre> external link {{Link|target=http://partner.bitplan.com}} <pre> {{Link|target=http://partner.bitplan.com|title=BITPlan Partner wiki}} </pre> external link with title {{Link|target=http://partner.bitplan.com|title=BITPlan Partner wiki}} === implementation === ==== Prerequisite ==== LocalSettings.php needs to have the StringFunctions enabled: <source lang='php'> # WF 2015-01-20 # allow string functions $wgPFEnableStringFunctions=true; </source> ==== Template source ==== The complexity of this template macro needs to be hidden ===== original Link Template ===== <pre> {{#set:Link target={{{target|}}} |Link title={{{title|}}} }}{{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | {{#set:Link targetUrl={{{target|}}}}}{{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }}| {{#set:Link targetPage={{{target|}}}}}{{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }}}}[[Category:Link]] </pre> ===== pretty printed Template macro ===== this version would unfortunately create unwanted newlines in the macro result <source lang='html4strict'> <!-- set concept attributes target (mandatory) and title (optional) --> {{#set:Link target={{{target|}}} |Link title={{{title|}}} }} <!-- check whether link is external or internal by comparing the firsts 4 chars with "http" --> {{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | <!-- in the http case (external link) set the targetURL property - it has the type "URL" and not "Text" like target or "Page" like targetPage --> {{#set:Link targetUrl={{{target|}}}}} <!-- display external link with our without title --> {{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }} | <!-- in the non-http case (internal link) set the targetPage property - it has the type "Page" and not "Text" like target or "Url" like targetUrl --> {{#set:Link targetPage={{{target|}}}}} <!-- display internal link with our without title --> {{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }} }} <!-- set the Category so that any page using this is displayed in this category --> [[Category:Link]] </source> ==== How the Link Macro works ==== The Link Macro checks whether the link is external or internal and displays the correct version. It sets the Link Concept's attributes by setting the correspond Semantic Media Wiki properties. it uses the following helper funcitons: * Substring: https://www.mediawiki.org/wiki/Extension:StringFunctions/en#.23sub: * #ifeq: https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/en#.23ifeq * #if: https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/en#.23if * #set: https://semantic-mediawiki.org/wiki/Help:Setting_values ===== Substring ===== <pre> {{#sub:string|start|length}} The start parameter, if positive (or zero), specifies a zero-based index of the first character to be returned. Example: {{#sub:Icecream|3}} returns cream. {{#sub:Icecream|0|3}} returns Ice. </pre> ===== if exists and non empty ===== <pre> {{#if: test string | value if test string is not empty | value if test string is empty (or only white space) }} </pre> ===== if equals ===== <pre> {{#ifeq: string 1 | string 2 | value if identical | value if different }} </pre> ===== setting Semantic values ===== <pre> {{#set:Has population=2,234,105 |Located in country=France |Has mayor=Bertrand Delanoë }} </pre> === Properties set === # {{Link|target=Property:Link_target}} # {{Link|target=Property:Link_targetPage}} # {{Link|target=Property:Link_targetUrl}} # {{Link|target=Property:Link_title}} [[Categorie:Link]] [[Category:Template]]</noinclude><includeonly>{{#set:Link target={{{target|}}} |Link title={{{title|}}} }}{{#ifeq: {{#sub:{{{target|}}}|0|4}} | http | {{#set:Link targetUrl={{{target|}}}}}{{#if: {{{title|}}} | [{{{target|http://www.smartMediaWiki.com}}} {{{title}}}] | [{{{target|http://www.smartMediaWiki.com}}}] }}| {{#set:Link targetPage={{{target|}}}}}{{#if: {{{title|}}} | [[{{{target|Main Page}}}|{{{title}}}]] | [[{{{target|Main Page}}}]] }}}}</includeonly> 5277c12673ba43d45b0cef591c794addfb1dae6a Template:PageSequence 10 103 391 213 2017-11-05T18:05:37Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:37Z wikitext text/x-wiki <noinclude>__NOCACHE__<!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:PageBreak |next=Template:PdfBook }} This is the PageSequence template it allows for prev/next style page sequences to displayed with icons. See [[Template:Icon]] <pre> {{PageSequence |prev= |next= |category= |categoryIcon= }} </pre> === example === <pre> {{PageSequence|prev=|next=bash|category=tools|categoryIcon=linux}} </pre> {{PageSequence|prev=|next=bash|category=tools|categoryIcon=linux}} <pre> {{PageSequence |prev=Template:Icon |next=Template:Link |category=Template |categoryIcon=file-text-o }} </pre> {{PageSequence |prev=Template:Icon |next=Template:Link |category=Template |categoryIcon=file-text-o }} </noinclude><includeonly>{{#set: |PageSequence next={{{next|}}} |PageSequence prev={{{prev|}}} |PageSequence category={{{category|}}} |PageSequence categoryIcon={{{categoryIcon|}}} }} <div style="display:table;border-collapse: collapse;"><div style="display: table-row;"> <div style="display: table-cell; vertical-align: middle">{{#if: {{{prev|}}}| {{#ifexist: {{{prev}}} |<imgLink img='{{Icon|name=nav_left_blue|title=previous}}'>{{{prev|}}}</imgLink> |<imgLink img='{{Icon|name=nav_left_red|title=previous}}'>{{{prev|}}}</imgLink>}} }} </div> {{#if: {{{category|}}} | <div style="display: table-cell;"> <div style="display: table-row;">{{#if: {{{categoryIcon|}}} |<imgLink img='{{Icon|name={{{categoryIcon|}}}|title={{{category|}}}}}'>:Category:{{{category|}}}</imgLink> }} </div> <div style="display: table-row;">{{Icon|name=edit|size=16}}{{Link|target=Special:FormEdit/PageSequence/{{FULLPAGENAME}}|title=edit}}</div> </div>}} <div style="display: table-cell; vertical-align: middle">{{#if: {{{next|}}} |{{#ifexist: {{{next}}} |<imgLink img='{{Icon|name=nav_right_blue|title=next}}'>{{{next|}}}</imgLink> |<imgLink img='{{Icon|name=nav_right_red|title=next}}'>{{{next|}}}</imgLink> }} }} </div> </div></div>{{#if: {{{category|}}} |{{Category|name={{{category|}}}}} }}</includeonly> ba49ba7f8e88ba84f317eb2dd7a85bb5522978b9 Template:PdfBook 10 156 392 214 2017-11-05T18:05:37Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:37Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:Link |next=Template:PPTSlide }} This is the "PdfBook" template. It creates a PDF File from a set of pages of a category. If the category page should be included it needs to be part of the category - reference itself. === Example === <pre> {{PdfBook}} </pre> {{PdfBook}} [[Category:Template]] </noinclude> <includeonly>[[Image:15x18-fileicon-pdf.png]][{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} Create a PDF Book of this category]</includeonly> b3c8d8b98c6b8f332fd39340b90443caf6038d25 Template:Sidif 10 95 393 215 2017-11-05T18:05:38Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:37Z wikitext text/x-wiki <noinclude>{{TemplateSequence |prev=Template:ProfiWiki |next=Template:SlideSequence }} This is the Template <nowiki>sidif</nowiki>. It displays a link to the {{sidif}} website. === Usage === <pre> {{sidif}} </pre> ==== result ==== {{sidif}} === templates used === [[Template:Link]] [[Category:Template]] </noinclude><includeonly>{{Link|target=http://www.sidif.org|title='''Si'''mple '''D'''ata '''I'''nterchange '''F'''ormat (SiDIF)}}</includeonly> 6c742c0a7f5fbf7df9599ac4d6c49daf690ffe29 Template:TemplateSequence 10 157 394 216 2017-11-05T18:05:38Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:38Z wikitext text/x-wiki <noinclude>{{TemplateSequence|prev=Template:Sidif|next=Template:TopicWikitasks}} This is the TemplateSequence template. It extends the {{Link|target=Template:PageSequence}} template. == example == <pre> {{TemplateSequence|prev=Template:Sidif|next=Template:TopicWikitasks}} </pre> {{TemplateSequence|prev=Template:Sidif|next=Template:TopicWikitasks}} </noinclude><includeonly>{{PageSequence |prev={{{prev|}}} |next={{{next|}}} |category=Template |categoryIcon=file-text-o }}</includeonly> 54406dd9343df848b51b411a5ee03d27922bc31f Template:WikiIconTask 10 99 395 220 2017-11-05T18:05:41Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:41Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:Wikitask |next=Template:WikiSlide }} see [[Template:Wikitask]] <br> calls RESTFul Java WikiTask service on {{SERVERNAME}} === Examples=== <pre> {{WikiIconTask|cmd=help|icon=question-circle}} </pre> {{WikiIconTask|cmd=help|icon=question-circle}} <pre> {{WikiIconTask|cmd=debug|icon=wrench}} </pre> {{WikiIconTask|cmd=debug|icon=wrench}} <pre> {{WikiIconTask|cmd=reset|icon=refresh}} </pre> {{WikiIconTask|cmd=reset|icon=refresh}} === Source === <source lang='php'> <imgLink img='{{Icon|name={{{icon|}}}|title={{{cmd|}}}}}' target='_blank' title='{{{cmd|}}}' href='http://{{SERVERNAME}}:9089/wikiserver/task/{{{cmd|version}}} ?server={{urlencode:{{#sub:{{canonicalurl:{{PAGENAME}}}}|0|{{#pos:{{canonicalurl:{{PAGENAME}}}}|{{SCRIPTPATH}}/index.php/{{PAGENAMEE}}|0}}}}}} &scriptpath={{urlencode:{{SCRIPTPATH}}}} &contentlanguage={{CONTENTLANGUAGE}} &page={{FULLPAGENAMEE}} &input={{urlencode:{{{input|}}}}} &params={{urlencode:{{{params|}}}}} &template={{urlencode:{{{template|}}}}} &dialog={{urlencode:{{{dialog|}}}}} &engine={{{engine|}}} &targetpage={{urlencode:{{{targetpage|}}}}} &logo={{urlencode:{{{logo|http://web.bitplan.com/wp-content/uploads/sites/2/2013/05/mw_joomla_logo1.png}}}}}' > </imgLink> </source> === siteurl === {| !siteurl |{{#sub:{{canonicalurl:{{PAGENAME}}}}|0|{{#pos:{{canonicalurl:{{PAGENAME}}}}|{{SCRIPTPATH}}/index.php/{{PAGENAMEE}}|0}}}} |- !canonicalurl |{{canonicalurl:{{PAGENAME}}}} |- !PAGENAME |{{PAGENAME}} |- !SERVERNAME |{{SERVERNAME}} |- !SCRIPTPATH |{{SCRIPTPATH}} |- |} </noinclude><includeonly><imgLink img='{{Icon|name={{{icon|}}}|title={{{cmd|}}}}}' target='_blank' title='{{{cmd|}}}' href='http://{{SERVERNAME}}:9089/wikiserver/task/{{{cmd|version}}}?server={{urlencode:{{#sub:{{canonicalurl:{{PAGENAME}}}}|0|{{#pos:{{canonicalurl:{{PAGENAME}}}}|{{SCRIPTPATH}}/index.php/{{PAGENAMEE}}|0}}}}}}&scriptpath={{urlencode:{{SCRIPTPATH}}}}&contentlanguage={{CONTENTLANGUAGE}}&page={{FULLPAGENAMEE}}&input={{urlencode:{{{input|}}}}}&params={{urlencode:{{{params|}}}}}&template={{urlencode:{{{template|}}}}}&dialog={{urlencode:{{{dialog|}}}}}&engine={{{engine|}}}&targetpage={{urlencode:{{{targetpage|}}}}}&logo={{{logo|}}}'></imgLink></includeonly> 44dfc3cb1717b491e1815831eb7de209cc44cb3d File:Index.png 6 161 396 305 2017-11-05T18:05:43Z Wf 1 Wf uploaded a new version of [[File:Index.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Link.png 6 162 397 306 2017-11-05T18:05:44Z Wf 1 Wf uploaded a new version of [[File:Link.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Element into input.png 6 163 398 307 2017-11-05T18:05:44Z Wf 1 Wf uploaded a new version of [[File:Element into input.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Component.png 6 164 399 308 2017-11-05T18:05:45Z Wf 1 Wf uploaded a new version of [[File:Component.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Registry.png 6 165 400 309 2017-11-05T18:05:45Z Wf 1 Wf uploaded a new version of [[File:Registry.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Category Icon.png 6 166 401 310 2017-11-05T18:05:46Z Wf 1 Wf uploaded a new version of [[File:Category Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Concept Icon.png 6 167 402 311 2017-11-05T18:05:46Z Wf 1 Wf uploaded a new version of [[File:Concept Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Help Icon.png 6 168 403 312 2017-11-05T18:05:47Z Wf 1 Wf uploaded a new version of [[File:Help Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:List Icon.png 6 169 404 313 2017-11-05T18:05:47Z Wf 1 Wf uploaded a new version of [[File:List Icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Icon template.png 6 170 405 314 2017-11-05T18:05:48Z Wf 1 Wf uploaded a new version of [[File:Icon template.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Form icon.jpg 6 171 406 315 2017-11-05T18:05:48Z Wf 1 Wf uploaded a new version of [[File:Form icon.jpg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Java icon.png 6 172 407 316 2017-11-05T18:05:49Z Wf 1 Wf uploaded a new version of [[File:Java icon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Concept:Context 108 35 408 235 2017-11-05T18:05:50Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:49Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=Context |pluralName=Contexts |icon=File:Registry.png |iconUrl=/images/d/d2/Registry.png |documentation=A Context groups some topics like a Namespace/Package |wikiDocumentation=A Context groups some topics like a Namespace/Package |defaultstoremode=property |listLimit= |cargo= |context=MetaModel |storemode=property }} {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === A Context groups some topics like a Namespace/Package === uml === <uml> title Context note as ContextDiagramNote Copyright (c) 2015-2016 BITPlan GmbH [[http://www.bitplan.com]] end note note as ContextNote A Context groups some topics like a Namespace/Package end note class Context { Text name Date since URL master } ContextNote .. Context Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015-2016 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Context name::+]] |Contexts see also * [[List of Contexts]] * [[Help:Context]] * [[Concept:Context]] * [[:Category:Context]] * [[:Template:Context]] * [[:Form:Context]] topic links: * [[:Category:Topic]] }} [[Category:Context]] 4572aa3b8d7eb79acbc6cd9894a669c89f336f71 Concept:Topic 108 36 409 236 2017-11-05T18:05:52Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:50Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=Topic |pluralName=Topics |icon=File:Index.png |iconUrl=/images/a/ae/Index.png |documentation=A Topic is a Concept/Class/Thing/Entity |wikiDocumentation=A Topic is a Concept/Class/Thing/Entity |defaultstoremode=property |listLimit= |cargo=false |context=MetaModel |storemode=property }} {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === A Topic is a Concept/Class/Thing/Entity === uml === <uml> title Topic note as TopicDiagramNote Copyright (c) 2015-2016 BITPlan GmbH [[http://www.bitplan.com]] end note note as TopicNote A Topic is a Concept/Class/Thing/Entity end note class Topic { Text name Text pluralName Page icon URL iconUrl Text documentation Text wikiDocumentation Text defaultstoremode Number listLimit Boolean cargo Boolean headerTabs Page context } TopicNote .. Topic Topic "topic (1)" -- "properties(*)" Property Context "context (1)" -- "topics(*)" Topic ' BITPlan Corporate identity skin params ' Copyright (c) 2015-2016 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Topic name::+]] |Topics see also * [[List of Topics]] * [[Help:Topic]] * [[Concept:Topic]] * [[:Category:Topic]] * [[:Template:Topic]] * [[:Form:Topic]] topic links: * [[:Category:Property]] }} [[Category:Topic]] a4f89782dcb0ff3e2704c712a4ad0f24468ddab0 Concept:TopicLink 108 37 410 237 2017-11-05T18:05:53Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:52Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=TopicLink |pluralName=TopicLinks |icon=File:Link.png |iconUrl=/images/f/fd/Link.png |documentation=A TopicLink links two Concepts |wikiDocumentation=A TopicLink links two [[Concept:Topic]]s |defaultstoremode=subobject |listLimit= |cargo= |context=MetaModel |storemode=property }} {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === A TopicLink links two [[Concept:Topic]]s === uml === <uml> title TopicLink note as TopicLinkDiagramNote Copyright (c) 2015-2016 BITPlan GmbH [[http://www.bitplan.com]] end note note as TopicLinkNote A TopicLink links two Concepts end note class TopicLink { Text name Page source Text sourceRole Boolean sourceMultiple Text sourceDocumentation Page target Text targetRole Boolean targetMultiple Text targetDocumentation Boolean masterDetail } TopicLinkNote .. TopicLink ' BITPlan Corporate identity skin params ' Copyright (c) 2015-2016 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[TopicLink source::+]] |TopicLinks see also * [[List of TopicLinks]] * [[Help:TopicLink]] * [[Concept:TopicLink]] * [[:Category:TopicLink]] * [[:Template:TopicLink]] * [[:Form:TopicLink]] topic links: }} [[Category:TopicLink]] b892d28e0db4547e35254b6cafa53c84ccd77b99 Concept:Property 108 38 411 238 2017-11-05T18:05:55Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:53Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=Property |pluralName=Properties |icon=File:Element_into_input.png |iconUrl=/images/6/6a/Element_into_input.png |documentation=a Property is a Feature/Attribute of a Topic |wikiDocumentation=see * https://semantic-mediawiki.org/wiki/Help:Properties_and_types * https://semantic-mediawiki.org/wiki/Help:Special_properties * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |defaultstoremode=property |listLimit= |cargo= |context=MetaModel |storemode=property }} {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === see * https://semantic-mediawiki.org/wiki/Help:Properties_and_types * https://semantic-mediawiki.org/wiki/Help:Special_properties * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes === uml === <uml> title Property note as PropertyDiagramNote Copyright (c) 2015-2016 BITPlan GmbH [[http://www.bitplan.com]] end note note as PropertyNote a Property is a Feature/Attribute of a Topic end note class Property { Text name Text label Page type Number index Number sortPos Boolean primaryKey Boolean mandatory Text namespace Number size Boolean uploadable Code defaultValue Text inputType Text allowedValues Text documentation Code values_from Boolean showInGrid Boolean isLink Boolean nullable Page topic } PropertyNote .. Property Property "usedByProperties (*)" -- "smw_type(1)" SMW_Type Topic "topic (1)" -- "properties(*)" Property ' BITPlan Corporate identity skin params ' Copyright (c) 2015-2016 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[Property name::+]] |Properties see also * [[List of Properties]] * [[Help:Property]] * [[Concept:Property]] * [[:Category:Property]] * [[:Template:Property]] * [[:Form:Property]] topic links: * [[:Category:SMW_Type]] }} [[Category:Property]] a470ccc15c92f0bdb06ae4b7cd7e676c5b1a002e Concept:SMW Type 108 39 412 239 2017-11-05T18:05:56Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:55Z wikitext text/x-wiki __NOCACHE__ {{Topic |name=SMW_Type |pluralName=SMW_Types |icon=File:Component.png |iconUrl=/images/4/40/Component.png |documentation=an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/false values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |wikiDocumentation=see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes |defaultstoremode=subobject |listLimit= |cargo= |context=MetaModel |storemode=property }} {{Topic |viewmode=masterdetail |storemode=none }} {{#forminput:form=Property|button text=add Property}} === Documentation === see * https://semantic-mediawiki.org/wiki/Special:Types * https://semantic-mediawiki.org/wiki/Help:List_of_datatypes === uml === <uml> title SMW_Type note as SMW_TypeDiagramNote Copyright (c) 2015-2016 BITPlan GmbH [[http://www.bitplan.com]] end note note as SMW_TypeNote an SMW_Type is a data type which determines the possible values for that type e.g. a Boolean can hold true/false values while a Number can hold 3.1459 or 20. A Page can hold the name of a Wiki page see https://semantic-mediawiki.org/wiki/Help:List_of_datatypes end note class SMW_Type { Text type Text documentation Text id URL helppage Page typepage Text javaType Page usedByProperties } SMW_TypeNote .. SMW_Type Property "usedByProperties (*)" -- "smw_type(1)" SMW_Type ' BITPlan Corporate identity skin params ' Copyright (c) 2015-2017 BITPlan GmbH ' see http://wiki.bitplan.com/PlantUmlSkinParams#BITPlanCI ' skinparams generated by com.bitplan.restmodelmanager skinparam note { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam component { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam package { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam usecase { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam activity { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam classAttribute { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam interface { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam class { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } skinparam object { BackGroundColor #FFFFFF FontSize 12 ArrowColor #FF8000 BorderColor #FF8000 FontColor black FontName Technical } hide Circle ' end of skinparams ' </uml> {{#concept: [[SMW_Type type::+]] |SMW_Types see also * [[List of SMW_Types]] * [[Help:SMW_Type]] * [[Concept:SMW_Type]] * [[:Category:SMW_Type]] * [[:Template:SMW_Type]] * [[:Form:SMW_Type]] topic links: }} [[Category:SMW_Type]] ac870a56d9005b22b826c9befb8e10437dbc0c6e File:BITPlanLogo2012.svg 6 2 413 317 2017-11-05T18:05:57Z Wf 1 Wf uploaded a new version of [[File:BITPlanLogo2012.svg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 TopicGenerator 0 40 414 241 2017-11-05T18:05:57Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:05:57Z wikitext text/x-wiki __TOC__ === dialog === <source lang='java' id='dialog' cache='false'> @// Copyright (c) 2016 BITPlan GmbH @// @// This is a Wikitask / Rythm template that @// displays an AJAX GUI for generating SmartMediaWiki results @// @import org.sidif.wiki.Reference @import org.sidif.wiki.ReferenceManager @import org.sidif.wiki.Source @import org.sidif.wiki.PageCache @import org.sidif.wiki.WikiTask @import com.bitplan.mediawiki.japi.api.Page @import com.bitplan.mediawiki.japi.api.Rev @include(wiki.SiDIFTemplates.defs) @include(wiki.SiDIFTemplates.dialogdefs) @// get a link for the given pagetitle @def String getLink(String pageTitle, int revid) { String link=wikiTask.getServer()+wikiTask.getScriptpath()+"/index.php?title="+urlEncode(pageTitle); if (revid>0) { link+="&oldid="+revid; } return link; } @// get the parameters for the wikitask @def String getWikiTaskParams(String engine) { String params="?server="+urlEncode(wikiTask.getServer()); params+="&scriptpath="+urlEncode(wikiTask.getScriptpath()); params+="&page="+urlEncode(wikiTask.getPageTitle()); params+="&engine="+engine; return params; } @// run the given wikitask command @def doWikiTaskCmd(String cmd, String param) { @{ String icon="component"; String engine="Freemarker"; if ("runtemplate".equals(cmd)){ icon="media_play_green.png"; } if ("reset".equals(cmd)) { icon="refresh"; } if ("help".equals(cmd)) { icon="help"; } if ("debug".equals(cmd)) { icon="wrench"; } if ("refreshRef".equals(cmd)) { icon="refresh"; } String params=getWikiTaskParams(engine); } <a href='@(cmd)@(params)'>@(stockicon(icon,48,cmd,cmd))</a> } @// run the given wikitask command @def wikiTaskCmd(String cmd) { @doWikiTaskCmd(cmd,null) } @// run the given wikitask command with a parameter @def wikiTaskCmd(String cmd, String param) { @doWikiTaskCmd(cmd,param) } @// add styles for the generator @def generatorStyle(String i_____) { @(i_____) <style type="text/css"> @(i_____) // progress text that comes with progress bars @(i_____) // see http://stackoverflow.com/questions/12452594/how-can-i-add-label-inside-a-progress-bar-tag @(i_____) span.progresstext { @(i_____) font-family:'Arial'; @(i_____) position:relative; @(i_____) top:-1.5em; @(i_____) margin-left:50%;; @(i_____) font-size:small; @(i_____) } @(i_____) </style> } @// scripts for generators @def generatorScript() { <script> // JavaScript support for Y-Principle TopicGenerator // convert a string to make the first char lower case function firstToLower(string) { return string.charAt(0).toLowerCase() + string.slice(1); } // get the div where responses are shown function getResponseDiv() { var result=document.getElementById("response"); return result; } // get the div where errors are shown function getErrorDiv() { var result=document.getElementById("errorMessage"); return result; } // get the checkBox jquery object with the given id function getGeneratorElement(generatorId,postfix) { var result=$("#"+generatorId+postfix); return result; } // clear the given div function clearDiv(div) { div.innerHTML=''; } // add a TextElement with the given tag and message to the given parent function newTextElement(tag,msg) { var newElement=document.createElement(tag); var content = document.createTextNode(msg); newElement.appendChild(content); return newElement; } // add a message to the given div function addMessage(div, msg) { var newElement=newTextElement('pre',msg); div.appendChild(newElement); return newElement; } // progress on transfers from the server to the client (downloads) // see https://developer.mozilla.org/de/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest function updateProgress (oEvent) { if (oEvent.lengthComputable) { var percentComplete = oEvent.loaded / oEvent.total; // ... } else { // Unable to compute progress information since the total size is unknown } } // show an error Message // param errMsg: the message to show function errorMessage(errMsg) { var errDiv=getErrorDiv(); if (errDiv!=null) { addMessage(errDiv,errMsg); errDiv.style.display = 'block'; } else { alert(errMsg); } } // flag an error for the given id function flagError(id,msg) { setProgress(id,0,""); var checkBox=getGeneratorElement(id,""); var progresstext=getGeneratorElement(id,"_progress_pc"); var errorSpan=newTextElement('span','⚠ '+msg); errorSpan.style='color:red;font-size:14px'; progresstext[0].appendChild(errorSpan); return checkBox; } // handle an error that has been thrown function handleError(err,id) { flagError(id,err.message); // abusing checkBox as data lookup var checkBox=getGeneratorElement(id,""); var errMessage=checkBox[0].name+" ERROR:"+err.code+" "+err.name+" '"+err.message+"' line:"+err.lineNumber; errorMessage(errMessage); } // get the class name of the given object function getClass(obj) { if (typeof obj === "undefined") return "undefined"; if (obj === null) return "null"; return Object.prototype.toString.call(obj) .match(/^\[object\s(.*)\]$/)[1]; } // send the given form function sendForm(formData,action,id) { try { var oReq = new XMLHttpRequest(); oReq.addEventListener('progress', updateProgress, false); oReq.addEventListener('load', transferComplete, false); oReq.addEventListener('error', transferFailed, false); oReq.addEventListener('abort', transferCanceled, false); oReq.onload = ajaxSuccess; // http://stackoverflow.com/questions/921198/get-request-url-from-xhr-object var xhrProto = XMLHttpRequest.prototype, origOpen = xhrProto.open; xhrProto.open = function (method, url, async) { this._url = url; this._id = id; return origOpen.apply(this,arguments); }; var async=true; oReq.open('POST', action, async,id); // important - this makes the request a non-simple request with CORS // oReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // user defined header forces CORS? oReq.setRequestHeader('Header-Custom-WikitaskCORS', 'OK'); oReq.setRequestHeader('Accept','application/json'); oReq.send(formData); } catch(err) { handleError(err,id); } return false; // Prevent direct form page button submit action } // set the progress for the given check box id // and return the progress bar function setProgress(checkBoxId,progress,percent) { var checkBox=getGeneratorElement(checkBoxId,""); var progressbar=getGeneratorElement(checkBoxId,"_progress"); var progresstext=getGeneratorElement(checkBoxId,"_progress_pc"); // console.log(progressbar); // FIXME - do a true progress // progressbar.val(progress); if (progress==0) { progressbar[0].style.display = 'none'; } else { progressbar[0].style.display = 'block'; } progresstext[0].textContent=percent; return progressbar; } // start the generator for the given form, contextSetting, contextname, template and targetpage function startGenerator(form,contextSettingTxt,contextname,topic,template,targetpage,id) { var formData = new FormData(form); formData.append('server', "@(wikiTask.getServer())"); formData.append('scriptpath', "/@(wikiTask.getScriptpath())"); formData.append('engine', 'Rythm'); formData.append('input', 'sidif'); formData.append('page','Topic'); var action=form.action; // action= // action="http://phobos.bitplan.com:9089/wikiserver/task/runtemplate"; formData.append('template',template); formData.append('targetpage',targetpage); formData.append('id',id); // set the params from the contextSettings // e.g. wikiId:capri,sidifInput:Topic#sidif,contextName:MetaModel,maintopicName:Topic var contextSetting=JSON.parse(contextSettingTxt); contextSetting.maintopicName=topic; var contextSettingJson=JSON.stringify(contextSetting) formData.append('params',contextSettingJson); sendForm(formData,action,id); } // start the generators for the given form function startGenerators(form) { clearDiv(getErrorDiv()); clearDiv(getResponseDiv()); var generatorchecks= $(".checkBoxClass:checked"); generatorchecks.each(function(){ setProgress(this.id,1,""); // targetPage is the name of the checkbox var template=this.value; var ytname=$(this).attr("yt") var target=$(this).attr("target"); var contextname=$(this).attr("context"); var contextSetting=$(this).attr("contextsetting"); var id=this.id; // split e.g. Template_Context; var split = id.split('__'); // FIXME use yt and topic and generator objects instead var topic=split[1]; startGenerator(form,contextSetting,contextname,topic,template,target,id); }); return false; } // get SiDIF function getSiDIF(lbutton) { // {{wikitask // |cmd=runtemplate // |engine=Rythm // |input=sidif // |dialog=TopicGenerator#dialog // |template=TopicGenerator#template // |params=tripleStoreMode:SMW,contextName:{{{context|}}} // |targetpage=TopicGenerator2015/{{{context|}}}}} var contextSetting=JSON.parse(lbutton.value); var params='@(getWikiTaskParams("Rythm"))'; var wikiTaskLink="runtemplate"+params; wikiTaskLink+="&input="+encodeURIComponent(contextSetting.sidifInput); wikiTaskLink+="&dialog="+encodeURIComponent("TopicGenerator#dialog"); wikiTaskLink+="&template="+encodeURIComponent("TopicGenerator#template"); wikiTaskLink+="&targetpage="+encodeURIComponent("TopicGenerator2015/"+contextSetting.contextName); wikiTaskLink+="&params=tripleStoreMode:"+contextSetting.tripleStoreMode; wikiTaskLink+=",contextName:"+encodeURIComponent(contextSetting.contextName); wikiTaskLink+=",sidifInput:"+encodeURIComponent(contextSetting.sidifInput); // console.log(wikiTaskLink); window.location.replace(wikiTaskLink); } // show the given event with the given message function showEvent(evt, msg) { var doshow=true; if (evt.target instanceof XMLHttpRequest) { var xhr=evt.target; msg+=" target="+xhr._url; msg+=" responseType="+xhr.responseType; msg+=" status="+xhr.status; if (xhr.status==200) { doshow=false; } } if (doshow) { errorMessage(evt.type+" "+getClass(evt.target)+": "+msg); } return evt.target; } // event when the transfer was successfully completed function ajaxSuccess () { var json=this.responseText; // console.log(json); try { var jsonResult=JSON.parse(json); // console.log(jsonResult); var errorMsg=jsonResult.errorMsg; if (errorMsg!=null) { setProgress(jsonResult.id,100,""); addMessage(getResponseDiv(),errorMsg); } else { setProgress(jsonResult.id,0,""); var checkBox=getGeneratorElement(jsonResult.id,""); var progresstext=getGeneratorElement(jsonResult.id,"_progress_pc"); var target=$("#"+jsonResult.id).attr("target"); var targetRef=newTextElement('a',target); targetRef.href=jsonResult.targetUrl; targetRef.style='font-size:12px'; var doneSpan=newTextElement('span','✓'); doneSpan.style='color:green;font-size:14px'; progresstext[0].appendChild(targetRef); progresstext[0].appendChild(doneSpan); var deltaRef=newTextElement('a','Δ'); deltaRef.style='font-size:12px'; var revid=$("#"+jsonResult.id+"_rev").attr("revid"); deltaRef.href=jsonResult.targetUrl+"?diff=cur&oldid="+revid; progresstext[0].appendChild(deltaRef); } } catch (ex) { alert(ex.message+"\njson="+json); } } // event when transfer is complete function transferComplete(evt) { showEvent(evt,"transfer complete"); } // event when the transfer failed function transferFailed(evt) { var xhr=showEvent(evt,"transfer failed"); if (xhr instanceof XMLHttpRequest) { flagError(xhr._id,"transfer failed"); } } // event when the transer was cancelled function transferCanceled(evt) { showEvent(evt,"transfer canceled"); } </script> } @// run the selected generators @def runGenerators() { @{ String icon="media_play_green"; String cmd="run"; } <button type='submit' name='@cmd' value='@cmd' title='@cmd' onclick="return startGenerators(this.form);"> @(stockicon(icon,32,cmd,cmd)) </button> } @// display the given Reference as a row @def referenceRow(Reference ref) { <tr> <td>@(wikiTaskCmd("refreshRef",ref.getReferenceId()))</td> <td><a href='@(ref.getUrl())'>@(ref.getReferenceId())</a></td> <td>@(ref.getReferenceType().toString())</td> <td>@(ref.getAge())</td> <td>@(ref.isAvailable())</td> <td>@if(ref.getContent()) { @(ref.getContent().length()) } else { - }</td> </tr> } @// display the given Source as a row @def sourceRow(Source source) { <tr><td></td><td>@(source.getId())</td><td>@(source.getPageTitle())</td><td>@(source.getAge())</td><td>@(source.isCache())</td><td>@(source.getSource().length())</td></tr> } @// display the table of PageCache entries @def pageCacheTable(PageCache pageCache,String indent) { @(indent)<table class="table tablesorter sortable"> @(indent)<thead> @(indent) <tr><th>page</th><th>rev</th><th>timestamp</th></tr> @(indent)</thead> @(indent)<tbody> @{ List<String> pageTitles = new ArrayList<String>(pageCache.getCachedPages().keySet()); } @for (String pageTitle:pageTitles) { @{ Page page=pageCache.getCachedPages().get(pageTitle); Rev rev = PageCache.getPageRevision(page); int revid=-1; String timeStamp="?"; if (rev!=null) { revid=rev.getRevid(); timeStamp=rev.getTimestamp(); } } @(indent) <tr><td>@showLink(pageTitle, 0, "Cache0_"+revid, "")</td><td>@showLink(pageTitle, revid, "Cache_"+revid, "")</td><td>@(timeStamp)</td></tr> } @(indent)</tbody> @(indent)</table> } @// display the table of references and sources @def referenceTable(ReferenceManager rm) { <table class="table tablesorter sortable"> <thead> <tr><th></th><th>id</th><th>type</th><th>age</th><th>cache</th><th>size</th></tr> </thead> <tbody> @for (Reference reference:rm.referenceByReferenceId.values()) { @referenceRow(reference) @if (rm.getSourceById().get(reference.getReferenceId())!=null) { <tr><th colspan='3'>Sources by Id</th> @for (Source source:wikiTask.referenceManager.getSourceById().get(reference.getReferenceId()).values()) { @sourceRow(source) } } @if (rm.getSourceBySection().get(reference.getAnchor())!=null) { <tr><th colspan='3'>Sources by Section</th> @for (Source source:wikiTask.referenceManager.getSourceBySection().get(reference.getAnchor()).values()) { @sourceRow(source) } } } </tbody> </table> } @// show a link for the given pageTitle and revision id @def showLink(String pageTitle,int revid, String id, String indent) { @{ // default is unknown revision red link / create page approach String revname="click to create"; String style="style='color:red'"; if (revid>=0) { style="style='font-size: 12px'"; // normal link but small font revname="Rev "+revid; } String link=getLink(pageTitle,revid); } @(indent)<a href='@(link)' id='@(id)' revid='@(revid)' title='@(revname)' @(style)>@(pageTitle)</a> } @// show the page status link @def pageStatusLink(Topic topic,YT yt,Map<String, Page> statusMap) { @{ String pageTitle=yt.getPageTitle(topic); Page page=statusMap.get(pageTitle); int revid = -1; if (page != null) { Rev rev = PageCache.getPageRevision(page); if (rev!=null) { revid = rev.getRevid(); } } } @showLink(pageTitle, revid, yt.name+"__"+topic.name+"_rev", " ") } @// show a single row of generators for a given domain topic @def topicRow(ContextSetting contextSetting,Context context,Topic topic,Map<String, Page> statusMap,YT[] yts, int rownum) { <tr> <th>@(topic.name)<div style="margin: 0 auto; width: 48px"><img src='@(wikiTask.getServer())@(wikiTask.getScriptpath())@(topic.iconUrl)' alt='@(topic.name)'></div></th><th><label><input class='checkboxSelect' type='checkbox' id="select_row_@(rownum)" title='select row'/>→</label></th> @{ int colnum=0;} @for(YT yt:yts) { <td> <label for='@(yt.name)_@(topic.name)'> <input type="checkbox" class="checkBoxClass row_@(rownum) col_@(colnum)" contextsetting='@contextSetting.toJson()' context='@(context.name)' target='@yt.getPageTitle(topic)' yt='@(yt.name)' topic='@(topic.name)' id='@(yt.name)__@(topic.name)' name='@(yt.name):@(topic.name)' title='generate @(yt.getPageTitle(topic))' value="SiDIFTemplates#@(yt.template)"> </label> </td> <td> @pageStatusLink(topic,yt,statusMap) <progress id='@(yt.name)__@(topic.name)_progress' max='10' title='@(yt.name):@(topic.name)' style='display:none'></progress> <span id='@(yt.name)__@(topic.name)_progress_pc' class='progresstext'></span> </td> @{ colnum++;} } </tr> } @// display the generators @// sortable disabled - doesn't seem to work with selectAll logic @def showGeneratorTasks(WikiTask wikiTask,ContextSetting contextSetting) { @{ Context context=ContextFactory.getInstance().getContext(contextSetting); List<String> pageTitles = new ArrayList<String>(); if (context!=null) { for (YT yt : YT.yts) { for (Topic topic : context.getTopics()) { pageTitles.add(yt.getPageTitle(topic)); } } } Map<String, Page> statusMap = wikiTask.referenceManager.getPageCache() .updatePageStatus(pageTitles, true); } <h3>@(contextSetting.getTripleStoreMode())</h3> @if (context) { <form action='#'> <table class="table tablesorter tablesorter-blue"> <thead> <tr> <th width='12%'>@(runGenerators())</th> <th>Targets </th> @for(YT yt:YT.yts) { <th colspan='2' style="text-align:center">@(yt.label)</th> } </tr> @{ int colnum=0;} <tr> <th class='{sorter: false}'>Topics<br> <div id='reloadbuttoncontainer' style='width:80px;display:inline-block' > <button onclick='getSiDIF(this);return false;' value='@ContextSetting.fromWikiTaskAsSiDIF(wikiTask).toJson()' title='reload from SiDIF' style='display:inline-block'> <img src='/stockicons/16x16/shadow/arrow_down_blue.png'/> </button> <button onclick='getSiDIF(this);return false;' value='@contextSetting.asSMWContextSetting().toJson()' title='reload from SMW Triples' style='display:inline-block' > <img src='/stockicons/16x16/shadow/arrow_down_green.png'/> </button> </div> </th> <th class='{sorter: false}'><label><input type="checkbox" id="selectall" name="selectall" title='select all'/>↘</label></th> @for(YT yt:YT.yts) { <th class='{sorter: false}' width='14px'><label><input class='checkboxSelect' type='checkbox' id='select_col_@(colnum)' title='select all @(yt.label)'/>↓</label></th><th width='10%'><div style="margin: 0 auto; width: 48px"><img src='@(wikiTask.getServer())@(wikiTask.getScriptpath())@(yt.iconUrl)' alt='@(yt.label)'></div></th> @{ colnum++;} } </tr> </thead> <tbody id='generatortasktable'> @{ int rownum=0;} @for (Topic topic:context.getTopics()) { @topicRow(contextSetting,context,topic,statusMap,YT.yts,rownum++) } </tbody> </table> </form> } } @// show the HTML Page for the given context @def showHtml(ContextSetting contextSetting) { <!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> <title>@(title)</title> @jquery(" ") @style(" ") @selectall() @generatorStyle(" ") @generatorScript() </head> <body> <div id='container' class='container'> <div id="dialog" title="@(title)" > @(wikiTaskCmd("reset"))@(wikiTaskCmd("help"))@(wikiTaskCmd("debug")) <a href='@(wikiTask.getTargetLink().getUrl())'>@(wikiTask.getTargetpage())</a> called from <a href='@(wikiTask.getServer())@(wikiTask.getScriptpath())/index.php/@(wikiTask.getPageTitle())'>@(wikiTask.getPageTitle())</a> (@(wikiTask.getDuration()) msecs) <div id="tabs"> <ul> <li><a href="#generators">Generators</a></li> <li><a href="#pagecache">Page-Cache</a></li> <li><a href="#references">References</a></li> </ul> <div id="generators"> @(showGeneratorTasks(wikiTask,contextSetting)) </div> <div id="pagecache"> @pageCacheTable(wikiTask.referenceManager.getPageCache()," ") </div> <div id="references"> @referenceTable(wikiTask.referenceManager) </div> </div> <div id='errorMessage' style='color:red;font-size: 14px;border:1px solid red;display:none'></div> <div id='response' style='font-size: 14px;border:1px solid blue'></div> </div> </div> @dialog(" ") </body> </html> } @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); } @showHtml(contextSetting) </source> === template === <source lang='java' id='template'> @include(wiki.SiDIFTemplates.defs) @// handle error @def handleError(Throwable error) { error @(error.getClass().getName()): @(error.getMessage()) === stacktrace === <pre> @getStackTrace(error) </pre> } @{ ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); Context context=ContextFactory.getInstance().getContext(contextSetting); Context smwContext=ContextFactory.getInstance().getContext(contextSetting.asSMWContextSetting()); String contextName=contextSetting.getContextName(); } @if (context==null) { Context (sidif): @(contextName) not found in SiDIF } else {== SiDIF == === @(contextName) SiDIF === <pre> @(context.asSiDIF()) </pre> === @(contextName) JSON === <pre> @(context.toJson()) </pre> } @if (smwContext==null) { Context (smw): @(contextName) not found in SMW triples of Wiki } else { == SMW == === @(contextName) SiDIF === <pre> @(smwContext.asSiDIF()) </pre> === @(contextName) JSON === <pre> @(smwContext.toJson()) </pre> } </source> 8eb09ea86216e15198d91f69c1bf5a304b8e2956 Template:ProfiWiki 10 175 415 246 2017-11-05T18:06:01Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:01Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:PPTSlide |next=Template:Sidif }} This is the "ProfiWiki" template. It shows a link to the ProfiWiki website === Example === <pre> {{ProfiWiki}} </pre> {{ProfiWiki}} [[Category:Template]]</noinclude><includeonly>{{Link|target=http://www.profiwiki.de|title=ProfiWiki}}</includeonly> 346fafa4d2aad7f2d82dc9247bfc7de7262d0d4b Property:LCODE 102 208 416 2017-11-05T18:06:02Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:02Z wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Template:Fixme 10 180 417 251 2017-11-05T18:06:04Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:04Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:ExternalImage |next=Template:HideSideBar }} This is the "Fixme" template. It should be called in the following format: <pre> {{Fixme |done= |todo= }} </pre> {{Fixme|todo=change so that empty done parameter sets SMW done property as "false" and Fixme's with no attributes show up in the List of Fixmes|done=false}} {{Fixme|todo=explain me|done=false}} Edit the page to see the template text. </noinclude><includeonly>{| class="wikitable" ! done | [[Fixme_done::{{{done|}}}]] |- ! todo | [[Fixme_todo::{{{todo|}}}]] |} </includeonly> 852924bdc2e701fb61ba7c8b58b099ffdf579c1c File:FixmeIcon.png 6 181 418 318 2017-11-05T18:06:05Z Wf 1 Wf uploaded a new version of [[File:FixmeIcon.png]] wikitext text/x-wiki File uploaded with MsUpload a655f04485ff507c02499d137d22a0d3e0ea32c2 File:15x18-fileicon-pdf.png 6 195 419 322 2017-11-05T18:06:08Z Wf 1 Wf uploaded a new version of [[File:15x18-fileicon-pdf.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 GenerateProperties 0 196 420 324 2017-11-05T18:06:11Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:09Z wikitext text/x-wiki {{Action |name=GenerateProperties |servicetype=WikiTask |inputtype=Page |input={{FULLPAGENAME}}#sidif |actionpage={{FULLPAGENAME}}#template |output={{FULLPAGENAME}}#result |engine=rythm |author=Wf |since=2015/11/18 |comment=This saves a lot of work! |storemode=property }} __NOCACHE__ * {{Link|target=Concept:Action}} * {{Link|target=Template:Action}} * {{Link|target=Template:Wikitask}} = input = === sidif === <source lang='java' id='sidif'> MetaModel isA Context "MetaModel#sidif"is sidif of it Topic needs Properties Property needs Properties SMW_Type needs Properties Context needs Properties TopicLink needs Properties Action needs Properties </source> === presentation sidif === <source lang='java' id='pressidif'> Presentation isA Context "Presentation#sidif"is sidif of it Bigstock needs Properties </source> === Training sidif === <source lang='java' id='trainingsidif'> Training isA Context "Training#sidif"is sidif of it Quizkarte needs Properties </source> === Syllabus sidif === <source lang='java' id='syllabussidif'> Syllabus isA Context "Syllabus#sidif"is sidif of it LearningGoal needs Properties </source> === CRM Sidif === <source lang='java' id='crmsidif'> CRM isA Context "CRM#sidif"is sidif of it Organization needs Properties Person needs Properties Contact needs Properties SocialLink needs Properties </source> = template = <source lang='java' id='dialog'> @// This is a rythm template @import org.sidif.triple.TripleQuery @import org.sidif.triple.Triple @import org.sidif.wiki.SSLWiki @import com.bitplan.topic.ContextSetting.TripleStoreMode @import com.alibaba.fastjson.JSON @import com.bitplan.mediawiki.japi.MediawikiApi @import com.bitplan.mediawiki.japi.Mediawiki @import com.bitplan.mediawiki.japi.api.Api @include(wiki.SiDIFTemplates.propertiesdefs) @args() { String title String logo org.sidif.wiki.WikiTask wikiTask org.sidif.triple.TripleStore tripleStore } @{ TripleQuery query=tripleStore.query(); TripleQuery needed=query.query(null,"needs","Properties"); Triple contextTriple=query.selectSingle(null,"isA","Context"); String contextName=contextTriple.getSubject().toString(); Triple sidifTriple=query.selectSingle(contextName,"sidif", null); String contextSidif=sidifTriple.getObject().toString(); // now get the context ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); contextSetting.setContextName(contextName); contextSetting.setSidifInput(contextSidif); contextSetting.setTripleStoreMode(TripleStoreMode.SiDIF); Context context = ContextFactory.getInstance().getContext(contextSetting); } @(wikiTask.getWiki().getIsoTimeStamp()) @(needed.size()) Topics need Properties to be generated @for (Triple neededTriple:needed.getTriples()) { @{ String topicName=neededTriple.getSubject().toString(); Topic topic=context.byName(topicName); } == Topic: @(topicName) == === properties of @(topic.name) === @for (Property property:topic.getProperties()) { ==== [[Property:@(topic.name) @(property.name)]] ==== @{ Throwable error=null; try { // get the Rythm template result org.rythmengine.utils.RawData pageContentRaw=property(topic,property); String pageContent=pageContentRaw.toString(); String pageTitle="Property:"+topic.name+" "+property.name; SSLWiki wiki=(SSLWiki)wikiTask.getWiki(); String currentContent=wiki.getPageContent(pageTitle); // if (currentContent==null || currentContent.length()==0) { String summary="generated by GenerateProperties at "+wiki.getIsoTimeStamp(); wiki.edit(pageTitle,pageContent,summary); // } } catch (Throwable th) { error=th; } } @if (error) { <span style='color:red'>Error: @(error.getMessage())</span> } <pre> @property(topic,property) </pre> } } </source> {{#default_form:Action}} = result = 2017-11-04T09:39:36Z 6 Topics need Properties to be generated == Topic: Topic == === properties of Topic === ==== [[Property:Topic name]] ==== <pre> {{Property |name=name |label=name |documentation=The name of the topic |type=Special:Types/Text |index=1 |sortPos= |primaryKey=true |mandatory=true |namespace= |size=80 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Topic pluralName]] ==== <pre> {{Property |name=pluralName |label=pluralName |documentation=The plural of a topic name. E.g. for the topic 'City' the pluralName is 'Cities'. If no pluralName is specified an 's' is appended. E.g. for the topic 'Book' the default pluralName is 'Books' |type=Special:Types/Text |index=2 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Topic icon]] ==== <pre> {{Property |name=icon |label=icon |documentation=an Icon for the topic |type=Special:Types/Page |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace=File |size=55 |uploadable=true |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Topic iconUrl]] ==== <pre> {{Property |name=iconUrl |label=icon Url |documentation=the url of an icon |type=Special:Types/URL |index=4 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=80 |uploadable=false |defaultValue= |inputType=text |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::URL]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Topic documentation]] ==== <pre> {{Property |name=documentation |label=documentation |documentation=The plaintext documentation of a Topic. Please do not use markup for this. |type=Special:Types/Text |index=5 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Topic wikiDocumentation]] ==== <pre> {{Property |name=wikiDocumentation |label=wikiDocumentation |documentation=Documentation of the Topic using MediaWiki / Semantic Mediawiki markup |type=Special:Types/Text |index=6 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Topic defaultstoremode]] ==== <pre> {{Property |name=defaultstoremode |label=default storemode |documentation=The default storemode of the topic |type=Special:Types/Text |index=7 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType=radiobutton |allowedValues=none,property,subobject |values_from= |showInGrid= |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Topic listLimit]] ==== <pre> {{Property |name=listLimit |label=list Limit |documentation=What is the default #ask list limit for this Topic? |type=Special:Types/Number |index=8 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=4 |uploadable=false |defaultValue=200 |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Topic cargo]] ==== <pre> {{Property |name=cargo |label=use cargo |documentation=Should the Topic be stored using the [https://www.mediawiki.org/wiki/Extension:Cargo Cargo Extension?] |type=Special:Types/Boolean |index=9 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Topic headerTabs]] ==== <pre> {{Property |name=headerTabs |label=headerTabs |documentation=shall the forms be generated with header tabs? |type=Special:Types/Boolean |index=10 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Topic context]] ==== <pre> {{Property |name=context |label=context |documentation= |type=Special:Types/Page |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType=dropdown |allowedValues= |values_from=concept=Context |showInGrid= |isLink=true |topic=Concept:Topic |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> == Topic: Property == === properties of Property === ==== [[Property:Property name]] ==== <pre> {{Property |name=name |label=name |documentation=The name of the property |type=Special:Types/Text |index=1 |sortPos=1 |primaryKey=true |mandatory=true |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property label]] ==== <pre> {{Property |name=label |label=label |documentation=The label to be shown when in a form |type=Special:Types/Text |index=2 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property type]] ==== <pre> {{Property |name=type |label=type |documentation=The type of a Property |type=Special:Types/Page |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue=Special:Types/Text |inputType=dropdown |allowedValues= |values_from=property=Property_type |showInGrid=true |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property index]] ==== <pre> {{Property |name=index |label=index |documentation=A positive number that specifies at which position of a Topic the given property should show. The first property to show has the index 1 each following property has an index that is +1 of the previous. |type=Special:Types/Number |index=4 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property sortPos]] ==== <pre> {{Property |name=sortPos |label=sortPos |documentation=If none empty >0 this is the position in the sort clause of this property. This is used when displaying list of the topic as the default sort order and it is used for selecting topics . E.g. Sortpos 1 for attribute lastname and sortpos 2 for attribute firstname leads to sort by lastname,firstname |type=Special:Types/Number |index=5 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=3 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property primaryKey]] ==== <pre> {{Property |name=primaryKey |label=primary key |documentation=is this property a primary key of it's topic? |type=Special:Types/Boolean |index=6 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=4 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property mandatory]] ==== <pre> {{Property |name=mandatory |label=mandatory |documentation=Specifies that this field must be filled in by the user. Note: mandatory should not be used in conjunction with hidden. Use of both in any field will cause the mandatory check on any field to fail when the form is saved. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag |type=Special:Types/Boolean |index=7 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=4 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property namespace]] ==== <pre> {{Property |name=namespace |label=namespace |documentation=namespace prefix |type=Special:Types/Text |index=8 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=20 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property size]] ==== <pre> {{Property |name=size |label=size |documentation=the display size of the field for the property |type=Special:Types/Number |index=9 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=3 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Number]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property uploadable]] ==== <pre> {{Property |name=uploadable |label=uploadable |documentation=Specifies that a link should be placed next to this field, that opens a popup window to let the user upload a file; see 'Uploading files', below. See * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * https://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Uploading_files The type of the target property needs to be Page for this to work |type=Special:Types/Boolean |index=10 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=4 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property defaultValue]] ==== <pre> {{Property |name=defaultValue |label=default |documentation=default value - Specifies a default value for this field. For date-related fields, default=now will set the value to the current date and possibly time. For text fields, default=current user will set the value to the username of the user adding this page. For the checkbox input type, default=yes will check the checkbox by default. (The 'checkboxes' input type, on the other hand, like the 'listbox' type, requires specifying the actual values, like default=Value A, Value C.) You can also include templates, parser functions, and magic words within the 'default=' value. see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag (default) |type=Special:Types/Code |index=11 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=80 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Code]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property inputType]] ==== <pre> {{Property |name=inputType |label=inputType |documentation=see * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>input type - Specifies the type of input this field will have in the form. If a field corresponds to an SMW property or Cargo field, the form will usually have the correct input type by default; otherwise the default is text. If the corresponding SMW property, or Cargo field, cannot be automatically determined, you can use the parameter 'property', or the parameters 'cargo table' and 'cargo field', to manually specify it (see below). The allowed set of input types is different for every semantic property type; see below for the full list of options. * http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#Allowed_input_types_for_data_types * http://www.mediawiki.org/wiki/Extension:Semantic_Forms_Inputs |type=Special:Types/Text |index=12 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType=dropdown |allowedValues=text, combobox, dropdown, textarea, tree, datetime, datepicker, timepicker, datetimepicker, menuselect,two listboxes, datecheck, regexp, radiobutton, googlemaps |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property allowedValues]] ==== <pre> {{Property |name=allowedValues |label=allowedValues |documentation=There are two ways to specified allowed Values: # https://semantic-mediawiki.org/wiki/Help:Special_property_Allows_value. <br>Use [[Property:Allows_value]] to see which values are allowed for certain properties # http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag<br>values=possible values - Specifies a set of either possible values or autocompletion values (depending on the input type) that this field can have, overriding whatever set of values may have been set from the Semantic MediaWiki property. This set of values is separated by commas by default, but the delimiter can be modified using the delimiter= parameter. If you specify any values method number 2 will be used here which might override any allowed Values specified with method number 1. |type=Special:Types/Text |index=13 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property documentation]] ==== <pre> {{Property |name=documentation |label=documentation |documentation=The documentation for a property |type=Special:Types/Text |index=14 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=500 |uploadable=false |defaultValue= |inputType=textarea |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property values_from]] ==== <pre> {{Property |name=values_from |label=values from |documentation=Specifies where to get the possible values to be displayed in a form from see http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Defining_forms#.27field.27_tag * values from property=property name - Similar to values=, but gets its values from the the set of all values that a certain SMW property points to. * values from category=category name - Similar to values=, but gets its values from the names of all pages belonging to a specific category. * values from concept=concept name - Similar to values=, but gets its values from the names of all pages belonging to a specific concept. * values from namespace=namespace name - Similar to values=, but gets its values from the names of all pages belonging to a specific namespace. (To get values from the main namespace, use 'Main' for the namespace name, or just leave it blank.) * values from url=URL identifier - Used only for autocompletion. Specifies that autocompletion should be based on the values retrieved from an outside URL; see Autocompleting on outside values for how to do this. * values from external data=variable name - Used for autocompletion. You need to have theExternal Data extension installed to be able to use this parameter. It specifies that autocompletion should be based on the data retrieved from an outside source. A large number of data sources are supported, including web APIs, regular wiki pages, files on the local server, databases and LDAP directories. See Autocompletion using External Data. |type=Special:Types/Code |index=15 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=200 |uploadable=false |defaultValue= |inputType=textarea |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Code]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property showInGrid]] ==== <pre> {{Property |name=showInGrid |label=showInGrid |documentation=I am true if this property is displayed in the default list of properties for my topic as a column |type=Special:Types/Boolean |index=16 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue=true |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property isLink]] ==== <pre> {{Property |name=isLink |label=isLink |documentation=true if this Property is derived form a Link. It will not be exported to SiDIF separately and automatically be added by the Property Generator |type=Special:Types/Boolean |index=17 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property nullable]] ==== <pre> {{Property |name=nullable |label=allow nulls? |documentation=should nullvalues be allowed and value set to NULL when empty? |type=Special:Types/Boolean |index=18 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue=false |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Property topic]] ==== <pre> {{Property |name=topic |label=topic |documentation= |type=Special:Types/Page |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType=dropdown |allowedValues= |values_from=concept=Topic |showInGrid= |isLink=true |topic=Concept:Property |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> == Topic: SMW_Type == === properties of SMW_Type === ==== [[Property:SMW_Type type]] ==== <pre> {{Property |name=type |label=type |documentation=The Semantic MediaWiki type without the prefix e.g. Text, Number, Boolean |type=Special:Types/Text |index=1 |sortPos= |primaryKey=true |mandatory=true |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:SMW_Type documentation]] ==== <pre> {{Property |name=documentation |label=documentation |documentation=The documentation of this Semantic Media Wiki type |type=Special:Types/Text |index=2 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:SMW_Type helppage]] ==== <pre> {{Property |name=helppage |label=helppage |documentation=The url of the 'official' documentation page of this type |type=Special:Types/URL |index=4 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::URL]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:SMW_Type typepage]] ==== <pre> {{Property |name=typepage |label=typepage |documentation=The Semantic Media Wiki Special page for this specific type e.g. Special:Types/Text, Special:Types/Boolean, Special:Types/Date, Special:Types/Number, Special:Types/Page |type=Special:Types/Page |index=5 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:SMW_Type javaType]] ==== <pre> {{Property |name=javaType |label=java Type |documentation=Java mapping of this type |type=Special:Types/Text |index=6 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:SMW_Type id]] ==== <pre> {{Property |name=id |label=id |documentation=SMW internal id of the type |type=Special:Types/Text |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:SMW_Type usedByProperties]] ==== <pre> {{Property |name=usedByProperties |label=usedByProperties |documentation=the properties having this type |type=Special:Types/Page |index= |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType=dropdown |allowedValues= |values_from=concept=Property |showInGrid= |isLink=true |topic=Concept:SMW_Type |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> == Topic: Context == === properties of Context === ==== [[Property:Context name]] ==== <pre> {{Property |name=name |label=name |documentation=Name of the context |type=Special:Types/Text |index=1 |sortPos=1 |primaryKey=true |mandatory=true |namespace= |size=80 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Context |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Context since]] ==== <pre> {{Property |name=since |label=since |documentation=since when is this context available? |type=Special:Types/Date |index=2 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType=datepicker |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Context |storemode=property }} [[Has type::Date]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Context master]] ==== <pre> {{Property |name=master |label=master |documentation=what is the original master source of this context |type=Special:Types/URL |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Context |storemode=property }} [[Has type::URL]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> == Topic: TopicLink == === properties of TopicLink === ==== [[Property:TopicLink name]] ==== <pre> {{Property |name=name |label=name |documentation=The name of the topic link |type=Special:Types/Text |index=1 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:TopicLink source]] ==== <pre> {{Property |name=source |label=source |documentation=the source of a topic Link |type=Special:Types/Page |index=2 |sortPos= |primaryKey=false |mandatory=true |namespace= |size=50 |uploadable=false |defaultValue= |inputType=dropdown |allowedValues= |values_from=concept=Topic |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:TopicLink sourceRole]] ==== <pre> {{Property |name=sourceRole |label=sourceRole |documentation= |type=Special:Types/Text |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:TopicLink sourceMultiple]] ==== <pre> {{Property |name=sourceMultiple |label=sourceMultiple |documentation= |type=Special:Types/Boolean |index=4 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:TopicLink sourceDocumentation]] ==== <pre> {{Property |name=sourceDocumentation |label=source Doc |documentation=Documentation for the source Role |type=Special:Types/Text |index=5 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=300 |uploadable=false |defaultValue= |inputType=textarea |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:TopicLink target]] ==== <pre> {{Property |name=target |label=target |documentation= |type=Special:Types/Page |index=6 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:TopicLink targetRole]] ==== <pre> {{Property |name=targetRole |label=targetRole |documentation= |type=Special:Types/Text |index=7 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:TopicLink targetMultiple]] ==== <pre> {{Property |name=targetMultiple |label=sourceMultiple |documentation= |type=Special:Types/Boolean |index=8 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=50 |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:TopicLink targetDocumentation]] ==== <pre> {{Property |name=targetDocumentation |label=target Doc |documentation=Documentation for the target Role |type=Special:Types/Text |index=9 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=300 |uploadable=false |defaultValue= |inputType=textarea |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:TopicLink masterDetail]] ==== <pre> {{Property |name=masterDetail |label=masterDetail |documentation=should the details be displayed in the same form and template? If no * for a 1:1 link there will be a linking attribute used and that can be selected. * for a 1:n link a link to the list of neighbours will be displayed if yes * for a 1:1 link the details * for a 1:n link |type=Special:Types/Boolean |index=10 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:TopicLink |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> == Topic: Action == === properties of Action === ==== [[Property:Action name]] ==== <pre> {{Property |name=name |label=name |documentation=The name of the Action |type=Special:Types/Text |index=0 |sortPos= |primaryKey=true |mandatory=true |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Action servicetype]] ==== <pre> {{Property |name=servicetype |label=servicetype |documentation=The type of the service |type=Special:Types/Text |index=1 |sortPos= |primaryKey=false |mandatory=true |namespace= |size= |uploadable=false |defaultValue=WikiTask |inputType=radiobutton |allowedValues=WikiTask |values_from= |showInGrid=true |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Action service]] ==== <pre> {{Property |name=service |label=service |documentation=The service to be used |type=Special:Types/URL |index=2 |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::URL]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Action inputtype]] ==== <pre> {{Property |name=inputtype |label=inputtype |documentation=What is the type of the input? |type=Special:Types/Text |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue=Page |inputType=radiobutton |allowedValues=Query,Page,URL |values_from= |showInGrid=true |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Action input]] ==== <pre> {{Property |name=input |label=input |documentation=the decription of the input e.g. a page name, url or SMW ask query |type=Special:Types/Code |index=4 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=300 |uploadable=false |defaultValue= |inputType=textarea |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::Code]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Action actionpage]] ==== <pre> {{Property |name=actionpage |label=actionpage |documentation=What page will 'steer' this action? |type=Special:Types/Page |index=5 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue=Property:Action actionpage |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Action output]] ==== <pre> {{Property |name=output |label=output |documentation=where the output of the action should go |type=Special:Types/Text |index=6 |sortPos= |primaryKey= |mandatory= |namespace= |size= |uploadable= |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid= |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Action engine]] ==== <pre> {{Property |name=engine |label=engine |documentation=the template engine to be used either [[Rythm]] or [[Freemarker]] |type=Special:Types/Text |index=7 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue=rythm |inputType=radiobutton |allowedValues=rythm,freemarker |values_from= |showInGrid=true |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Action author]] ==== <pre> {{Property |name=author |label=author |documentation=the author of this action |type=Special:Types/Page |index=8 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType=combobox |allowedValues= |values_from=namespace=User |showInGrid=true |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::Page]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Action since]] ==== <pre> {{Property |name=since |label=since |documentation=since when is this action available? |type=Special:Types/Date |index=9 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType=datepicker |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::Date]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> ==== [[Property:Action comment]] ==== <pre> {{Property |name=comment |label=comment |documentation=a comment for the action |type=Special:Types/Text |index=10 |sortPos= |primaryKey=false |mandatory=false |namespace= |size=400 |uploadable=false |defaultValue= |inputType=textarea |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Action |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} </pre> = Links = <headertabs/> 6473c9d6eac7747f1fe5efcf5fcc979d40731806 File:Actionicon.png 6 197 421 325 2017-11-05T18:06:11Z Wf 1 Wf uploaded a new version of [[File:Actionicon.png]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Property:Topic headerTabs 102 209 422 2017-11-05T18:06:11Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:11Z wikitext text/x-wiki {{Property |name=headerTabs |label=headerTabs |documentation=shall the forms be generated with header tabs? |type=Special:Types/Boolean |index=10 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:Topic |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 6233cbd454efea13309ca69e9d489c7f038c6803 Template:ExternalImage 10 210 423 2017-11-05T18:06:12Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:12Z wikitext text/x-wiki <noinclude><!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:Done |next=Template:Fixme }} This is the Template ''ExternalImage'' It works along the lines of: * http://stackoverflow.com/questions/19450262/mediawiki-set-external-image-width-by-value You might want to add the following lines to {{Link|target=MediaWiki:Common.css}} <pre> .externalimage-holder { position: relative; } .externalimage-holder img { width: 100%; height: auto; } </pre> === usage === <pre>{{ExternalImage|size=250px|title=Smiling Girl|link=http://philia-care.com/wp-content/uploads/2015/04/smiling_girl_small.jpg}}</pre> {{ExternalImage|size=250px|title=Smiling Girl|link=http://philia-care.com/wp-content/uploads/2015/04/smiling_girl_small.jpg}} [[Category:Template]] </noinclude><includeonly><div class='externalimage-holder' title='{{{title|}}}' style='width:{{{size|250px}}}'>{{{link|}}}</div></includeonly> 3a7ed24bbd0e476db378e0a79e40b9499bea96c8 Template:PageBreak 10 211 424 2017-11-05T18:06:12Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:12Z wikitext text/x-wiki <noinclude>__NOCACHE__<!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT -->{{TemplateSequence |prev=Template:Link |next=Template:PageSequence }}This is the '''PageBreak''' template. It includes html markup into the wiki markup to force a page break on printout == usage == <pre> {{PageBreak}} </pre> {{PageBreak}} == issues == * http://stackoverflow.com/questions/1630819/google-chrome-printing-page-breaks * http://stackoverflow.com/questions/16989843/page-break-after-always-not-working-when-printing == test == If you print this page the test part should show on a new page </noinclude><includeonly><div style='page-break-after: always;'></div></includeonly> 360739c2d2a2a1a22075e35c92e61e7af87a78a1 File:BITPlanLogo2012 138x77.png 6 212 425 2017-11-05T18:06:13Z Wf 1 File uploaded with MsUpload wikitext text/x-wiki File uploaded with MsUpload a655f04485ff507c02499d137d22a0d3e0ea32c2 Template:SlideSequence 10 213 426 2017-11-05T18:06:13Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:13Z wikitext text/x-wiki <noinclude> {{TemplateSequence |prev=Template:Slide |next=Template:TemplateSequence }} This is the Template for Slide Sequences === Example === {{SlideSequence|prev=Template:Slide|next=Template:PPTSlide|presentation=CPRE-AL-RM-presentation-1_ch01}} {{SlideSequence|prev=Begriffe Kapitel 7|presentation=CPRE-AL-RM-presentation-7_ch07}} </noinclude> <includeonly>{{IconLink|name=home|target=Main Page|title=home}}{{#if:{{{prev|}}}|{{IconLink|name=nav_left_blue|target={{{prev|}}}|title=previous}}}}{{#if:{{{presentation|}}}|{{#vardefine:categoryIcon|{{#show:{{{presentation|}}}|?categoryIcon#}}}} {{IconLink|name={{#if:{{#var:categoryIcon}}|{{#var:categoryIcon}}|presentation}}|target={{{presentation|}}}|title={{{presentation|}}}}}}}{{#if:{{{next|}}}|{{IconLink|name=nav_right_blue|target={{{next|}}}|title=next}}}}</includeonly> d25537e8e918981071b954194297198885670d46 Template:PPTSlide 10 214 427 2017-11-05T18:06:14Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:13Z wikitext text/x-wiki <noinclude> {{TemplateSequence |prev=Template:PdfBook |next=Template:ProfiWiki }} This is a template for printing and displaying "Powerpoint" slides === Example === {{PPTSlide|content=File:Anforderungen_im_Rahmen_der_Konzeption_erheben.png|notes=Anforderungen werden im Rahmen der Konzeption erhoben.<br> Es wird die Problemseitige Fragestellung geklärt, bevor eine Lösung entwickelt wird.}} </noinclude><includeonly>{{HideSideBar}}{{SlideSequence|prev={{{prev|}}}|presentation={{{presentation|}}}|next={{{next|}}}}} {{#if:{{{content|}}}|[[{{{content|}}}|800px]]}}<div style='float:right'>{{{notes|}}}</div></includeonly> 9f4c88c20522bc6034fe5bd73a860b0fbc2eba91 Template:WikiSlide 10 215 428 2017-11-05T18:06:14Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:14Z wikitext text/x-wiki <noinclude> {{TemplateSequence |prev=Template:WikiIconTask |next=Template:! }} This is a template for printing and displaying Wiki pages as slides === Examples === {{WikiSlide |title=A very long sample title that might well need two lines to be displayed |text=<br> <div class='bitplanorange'>A sample slide</div> |notes=This is a sample slide }} <pre> {{WikiSlide |title=Typical slide |text=Mostly slides have * bullet points * pictures * plain text |notes=This is a sample slide }} </pre> {{WikiSlide |title=Typical slide |text=Mostly slides have * bullet points * pictures * plain text |notes=This is a sample slide }} {{WikiSlide |title=Slide with picture (right) |rightContent=[[File:Slotmachine.png|400px]] |text=Some slides have * pictures * either placed right or left * which float side by side with the text |notes=see {{Link|target=Template:WikiSlide}} }} {{WikiSlide |title=Side with bigstock (right) |rightContent={{Bigstock|id=60303878}} |text=Tasks can be put in a task list * each item can be marked as done * the list updates itself * the items can be assigned to people }} {{WikiSlide |title=Side with bigstock (left) |leftContent={{Bigstock|id=23984411}} |text=Tasks can be put in a task list * each item can be marked as done * the list updates itself * the items can be assigned to people }} {{WikiSlide |title=Slide with table in Notes |leftContent={{Bigstock|id=66177250}} |text=The table should show on the right |notes={{{!}} class='wikitable sortable' {{!}}Anforderungen ermitteln {{!}}Stakeholder und deren Bedürfnisse und Ideen Gegebenenfalls: ein vorhandenes Altsystem und dessen Dokumentation Konkurrenzprodukte {{!}}Mündliche und schriftliche Anforderungen einschließlich der System-Vision {{!}}- {{!}}Anforderungen dokumentieren {{!}}Mündliche und schriftliche Anforderungen {{!}}Schriftliche Anforderungsspezifikation (textuell oder modellbasiert oder beides) {{!}}- {{!}}Anforderungen prüfen und abstimmen {{!}}Schriftliche Anforderungsspezifikation {{!}}Validierte, konfliktfreie, konsistente, priorisierte, qualitätsgesicherte Anforderungsspezifikation {{!}}- {{!}}Anforderungen verwalten {{!}}Schriftliche Anforderungsspezifikation sowie Änderungsanträge {{!}}Stets aktuelle, validierte, konfliktfreie, konsistente, priorisierte, qualitätsgesicherte Anforderungsspezifikation Aufbereitung der Anforderungen für einzelne Stakeholder-Gruppen {{!}}- {{!}}} }} [[Category:SlidePrintTemplate]] </noinclude><includeonly>{{SlideSequence|prev={{{prev|}}}|presentation={{{presentation|}}}|next={{{next|}}}}} <html> <style> #bp-slide-frame { height: 100%; margin: 0; width: 100%; } #bp-slide-header, #bp-slide-footer { background: #EAEAEA; font-family:Arial; } #bp-slide-header { background-size: 100px; height: 71px; margin-bottom: 4px; } #bp-slide-headerframe { border-bottom: 2px #ff8000 solid; } #bp-slide-headercontent { margin: 30px; height: 20px; font-weight: bold; font-size: 24px; } #bp-slide-footer { height: 65px; } #bp-slide-footerframe { margin-top: 4px; border-top: 2px #ff8000 solid; } #bp-slide-footercontent { margin: 10px } .bp-slide-content-row { background: #FFFFFF; min-height: 70%; overflow:scroll; height: 100%; } .bp-slide-content { padding: 12px; font-size: 24px; } .bp-slide-content-right { font-size: 18px; } .bp-slide-content-left { font-size: 18px; } </style> </html> {{HideSideBar}} <table id='bp-slide-frame'> <tr id='bp-slide-header'> <td id='bp-slide-headerframe' colspan='3'> <div id='bp-slide-headercontent'>[[File:BITPlanLogo2012 138x77.png|left]]{{{title|}}}</div> </td> </tr> <tr class="bp-slide-content-row"> <td class='bp-slide-content-left'>{{#if:{{{leftContent|}}}|{{{leftContent|}}}}}</td> <td class='bp-slide-content'>{{#if:{{{text|}}}|{{{text|}}}}}</td> <td class='bp-slide-content-right'>&nbsp;{{#if:{{{rightContent|}}}|{{{rightContent|}}}}}</td> <td width='50%'>&nbsp;{{#if:{{{notes|}}}|{{{notes|}}}}}</td> </tr> <tr id="bp-slide-footer"> <td id='bp-slide-footerframe' colspan='3'> <div id='bp-slide-footercontent'>Copyright (c) 2015 BITPlan GmbH</div> </td> </tr> </table> </includeonly> c5cce9769997c0f5e125efdb1da5d172faf5f02f Template:Slide 10 101 429 142 2017-11-05T18:06:15Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:15Z wikitext text/x-wiki <noinclude> <!-- THIS FILE IS PROTECTED - smartGENERATOR WILL NOT OVERWRITE IT --> <!-- -- Copyright (C) 2015 BITPlan GmbH -- -- Pater-Delp-Str. -- 1 -- D-47877 -- Willich-Schiefbahn -- -- http://www.bitplan.com -- -- --> {{TemplateSequence |prev=Template:Sidif |next=Template:SlideSequence }} This is the template {{Link|target=Template:Slide|title=Slide}}. It belongs to the concept/topic {{Link|target=:Concept:Slide}}<br> You may find examples for the use of this template via the {{Link|target=List of Slides}}. === Usage === ==== storemode subobject ==== <pre>{{Slide |title= |pageno= |pages= |prev= |next= |leftContent= |rightContent= |text= |notes= |print= |template= |state= |comment= |presentation= |storemode=subobject }} </pre> ==== storemode property ==== <pre>{{Slide |title= |pageno= |pages= |prev= |next= |leftContent= |rightContent= |text= |notes= |print= |template= |state= |comment= |presentation= |storemode=property }} </pre> ==== storemode none ==== <pre>{{Slide |title= |pageno= |pages= |prev= |next= |leftContent= |rightContent= |text= |notes= |print= |template= |state= |comment= |presentation= |storemode=none }} </pre> ==== viewmode tableheader ==== <pre>{{Slide |title= |pageno= |pages= |prev= |next= |leftContent= |rightContent= |text= |notes= |print= |template= |state= |comment= |presentation= |viewmode=tableheader }} </pre> ==== viewmode tablerow ==== <pre>{{Slide |title= |pageno= |pages= |prev= |next= |leftContent= |rightContent= |text= |notes= |print= |template= |state= |comment= |presentation= |viewmode=tablerow }} </pre> ==== viewmode tablefooter ==== <pre>{{Slide |title= |pageno= |pages= |prev= |next= |leftContent= |rightContent= |text= |notes= |print= |template= |state= |comment= |presentation= |viewmode=tablefooter }} </pre> ==== viewmode labelfield ==== <pre>{{Slide |title= |pageno= |pages= |prev= |next= |leftContent= |rightContent= |text= |notes= |print= |template= |state= |comment= |presentation= |viewmode=labelfield }} </pre> === Source === <source lang='html4strict'> {{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Slide<br>|}} {{#if:{{{?title|}}}|"{{{?title}}}" is title of it <br>|}} {{#if:{{{?pageno|}}}|"{{{?pageno}}}" is pageno of it <br>|}} {{#if:{{{?pages|}}}|"{{{?pages}}}" is pages of it <br>|}} {{#if:{{{?prev|}}}|"{{{?prev}}}" is prev of it <br>|}} {{#if:{{{?next|}}}|"{{{?next}}}" is next of it <br>|}} {{#if:{{{?leftContent|}}}|"{{{?leftContent}}}" is leftContent of it <br>|}} {{#if:{{{?rightContent|}}}|"{{{?rightContent}}}" is rightContent of it <br>|}} {{#if:{{{?text|}}}|"{{{?text}}}" is text of it <br>|}} {{#if:{{{?notes|}}}|"{{{?notes}}}" is notes of it <br>|}} {{#if:{{{?print|}}}|"{{{?print}}}" is print of it <br>|}} {{#if:{{{?template|}}}|"{{{?template}}}" is template of it <br>|}} {{#if:{{{?state|}}}|"{{{?state}}}" is state of it <br>|}} {{#if:{{{?comment|}}}|"{{{?comment}}}" is comment of it <br>|}} {{#if:{{{?presentation|}}}|"{{{?presentation}}}" is presentation of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Slide |Slide title={{{title|}}} |Slide pageno={{{pageno|}}} |Slide pages={{{pages|}}} |Slide prev={{{prev|}}} |Slide next={{{next|}}} |Slide leftContent={{{leftContent|}}} |Slide rightContent={{{rightContent|}}} |Slide text={{{text|}}} |Slide notes={{{notes|}}} |Slide print={{{print|}}} |Slide template={{{template|}}} |Slide state={{{state|}}} |Slide comment={{{comment|}}} |Slide presentation={{{presentation|}}} }} }} {{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !title!!pageno!!pages!!prev!!next!!leftContent!!rightContent!!text!!notes!!print!!template!!state!!comment!!presentation {{!}}- |tablerow= {{!}}{{{title|}}}{{!}}{{!}}{{{pageno|}}}{{!}}{{!}}{{{pages|}}}{{!}}{{!}}{{{prev|}}}{{!}}{{!}}{{{next|}}}{{!}}{{!}}{{{leftContent|}}}{{!}}{{!}}{{{rightContent|}}}{{!}}{{!}}{{{text|}}}{{!}}{{!}}{{{notes|}}}{{!}}{{!}}{{{print|}}}{{!}}{{!}}{{{template|}}}{{!}}{{!}}{{{state|}}}{{!}}{{!}}{{{comment|}}}{{!}}{{!}}{{{presentation|}}} {{!}}- |tablefooter={{!}}} |labelfield= title={{#if:{{{title|}}}|{{{title|}}}|}}<br>pageno={{#if:{{{pageno|}}}|{{{pageno|}}}|}}<br>pages={{#if:{{{pages|}}}|{{{pages|}}}|}}<br>prev={{#if:{{{prev|}}}|[[{{{prev|}}}]]|}}<br>next={{#if:{{{next|}}}|[[{{{next|}}}]]|}}<br>leftContent={{#if:{{{leftContent|}}}|{{{leftContent|}}}|}}<br>rightContent={{#if:{{{rightContent|}}}|{{{rightContent|}}}|}}<br>text={{#if:{{{text|}}}|{{{text|}}}|}}<br>notes={{#if:{{{notes|}}}|{{{notes|}}}|}}<br>print={{#if:{{{print|}}}|{{{print|}}}|}}<br>template={{#if:{{{template|}}}|{{{template|}}}|}}<br>state={{#if:{{{state|}}}|{{{state|}}}|}}<br>comment={{#if:{{{comment|}}}|{{{comment|}}}|}}<br>presentation={{#if:{{{presentation|}}}|[[{{{presentation|}}}]]|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Slide {{!}}- {{#switch:{{{storemode|}}}|property= ! colspan='2' style='text-align:left' {{!}} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Slide/{{FULLPAGENAME}}|title=edit}} {{!}}- }} !title {{!}}&nbsp;{{#if:{{{title|}}}|{{{title|}}}|}} {{!}}- !# {{!}}&nbsp;{{#if:{{{pageno|}}}|{{{pageno|}}}|}} {{!}}- ! ## {{!}}&nbsp;{{#if:{{{pages|}}}|{{{pages|}}}|}} {{!}}- !prev {{!}}&nbsp;{{#if:{{{prev|}}}|[[{{{prev|}}}]]|}} {{!}}- !next {{!}}&nbsp;{{#if:{{{next|}}}|[[{{{next|}}}]]|}} {{!}}- !left {{!}}&nbsp;{{#if:{{{leftContent|}}}|{{{leftContent|}}}|}} {{!}}- !right {{!}}&nbsp;{{#if:{{{rightContent|}}}|{{{rightContent|}}}|}} {{!}}- !text {{!}}&nbsp;{{#if:{{{text|}}}|{{{text|}}}|}} {{!}}- !notes {{!}}&nbsp;{{#if:{{{notes|}}}|{{{notes|}}}|}} {{!}}- !print {{!}}&nbsp;{{#if:{{{print|}}}|{{{print|}}}|}} {{!}}- !template {{!}}&nbsp;{{#if:{{{template|}}}|{{{template|}}}|}} {{!}}- !state {{!}}&nbsp;{{#if:{{{state|}}}|{{{state|}}}|}} {{!}}- !comment {{!}}&nbsp;{{#if:{{{comment|}}}|{{{comment|}}}|}} {{!}}- !presentation {{!}}&nbsp;{{#if:{{{presentation|}}}|[[{{{presentation|}}}]]|}} {{!}}- {{!}}} }} }} [[Category:Slide]] </source> Click on "Edit" to edit the Source of this Template. </noinclude><includeonly>{{#switch:{{{userparam|}}}|sidif={{#if:{{{?pageid|}}}|{{#replace:{{#replace:{{{?pageid}}}|#|}}|-|_}} isA Slide<br>|}} {{#if:{{{?title|}}}|"{{{?title}}}" is title of it <br>|}} {{#if:{{{?pageno|}}}|"{{{?pageno}}}" is pageno of it <br>|}} {{#if:{{{?pages|}}}|"{{{?pages}}}" is pages of it <br>|}} {{#if:{{{?prev|}}}|"{{{?prev}}}" is prev of it <br>|}} {{#if:{{{?next|}}}|"{{{?next}}}" is next of it <br>|}} {{#if:{{{?leftContent|}}}|"{{{?leftContent}}}" is leftContent of it <br>|}} {{#if:{{{?rightContent|}}}|"{{{?rightContent}}}" is rightContent of it <br>|}} {{#if:{{{?text|}}}|"{{{?text}}}" is text of it <br>|}} {{#if:{{{?notes|}}}|"{{{?notes}}}" is notes of it <br>|}} {{#if:{{{?print|}}}|"{{{?print}}}" is print of it <br>|}} {{#if:{{{?template|}}}|"{{{?template}}}" is template of it <br>|}} {{#if:{{{?state|}}}|"{{{?state}}}" is state of it <br>|}} {{#if:{{{?comment|}}}|"{{{?comment}}}" is comment of it <br>|}} {{#if:{{{?presentation|}}}|"{{{?presentation}}}" is presentation of it <br>|}} |#default={{#switch:{{{storemode|}}} |none= |{{#set: |isA=Slide |Slide title={{{title|}}} |Slide pageno={{{pageno|}}} |Slide pages={{{pages|}}} |Slide prev={{{prev|}}} |Slide next={{{next|}}} |Slide leftContent={{{leftContent|}}} |Slide rightContent={{{rightContent|}}} |Slide text={{{text|}}} |Slide notes={{{notes|}}} |Slide print={{{print|}}} |Slide template={{{template|}}} |Slide state={{{state|}}} |Slide comment={{{comment|}}} |Slide presentation={{{presentation|}}} }} }} {{#switch: {{{print|}}} |wiki={{SlideSequence|prev={{{prev|}}}|presentation={{{presentation|}}}|next={{{next|}}}}} |template={{{{{template|PPTTemplate}}}|content={{{leftContent|}}}|title={{{title|}}}|leftContent={{{leftContent|}}}|rightContent={{{rightContent|}}}|text={{{text|}}}|notes={{{notes|}}}|comment={{{comment|}}}|prev={{{prev|}}}|presentation={{{presentation|}}}|next={{{next|}}}}} |#default={{#switch: {{{viewmode|}}} |masterdetail= |tableheader={{{!}} class='wikitable' !title!!pageno!!pages!!prev!!next!!leftContent!!rightContent!!text!!notes!!print!!template!!state!!comment!!presentation {{!}}- |tablerow= {{!}}{{{title|}}}{{!}}{{!}}{{{pageno|}}}{{!}}{{!}}{{{pages|}}}{{!}}{{!}}{{{prev|}}}{{!}}{{!}}{{{next|}}}{{!}}{{!}}{{{leftContent|}}}{{!}}{{!}}{{{rightContent|}}}{{!}}{{!}}{{{text|}}}{{!}}{{!}}{{{notes|}}}{{!}}{{!}}{{{print|}}}{{!}}{{!}}{{{template|}}}{{!}}{{!}}{{{state|}}}{{!}}{{!}}{{{comment|}}}{{!}}{{!}}{{{presentation|}}} {{!}}- |tablefooter={{!}}} |labelfield= title={{#if:{{{title|}}}|{{{title|}}}|}}<br>pageno={{#if:{{{pageno|}}}|{{{pageno|}}}|}}<br>pages={{#if:{{{pages|}}}|{{{pages|}}}|}}<br>prev={{#if:{{{prev|}}}|[[{{{prev|}}}]]|}}<br>next={{#if:{{{next|}}}|[[{{{next|}}}]]|}}<br>leftContent={{#if:{{{leftContent|}}}|{{{leftContent|}}}|}}<br>rightContent={{#if:{{{rightContent|}}}|{{{rightContent|}}}|}}<br>text={{#if:{{{text|}}}|{{{text|}}}|}}<br>notes={{#if:{{{notes|}}}|{{{notes|}}}|}}<br>print={{#if:{{{print|}}}|{{{print|}}}|}}<br>template={{#if:{{{template|}}}|{{{template|}}}|}}<br>state={{#if:{{{state|}}}|{{{state|}}}|}}<br>comment={{#if:{{{comment|}}}|{{{comment|}}}|}}<br>presentation={{#if:{{{presentation|}}}|[[{{{presentation|}}}]]|}}<br>|#default={{{!}} class='wikitable' ! colspan='2' {{!}}Slide {{!}}- {{#switch:{{{storemode|}}}|property= ! colspan='2' style='text-align:left' {{!}} {{Icon|name=edit|size=24}}{{Link|target=Special:FormEdit/Slide/{{FULLPAGENAME}}|title=edit}} {{!}}- }} !title {{!}}&nbsp;{{#if:{{{title|}}}|{{{title|}}}|}} {{!}}- !# {{!}}&nbsp;{{#if:{{{pageno|}}}|{{{pageno|}}}|}} {{!}}- ! ## {{!}}&nbsp;{{#if:{{{pages|}}}|{{{pages|}}}|}} {{!}}- !prev {{!}}&nbsp;{{#if:{{{prev|}}}|[[{{{prev|}}}]]|}} {{!}}- !next {{!}}&nbsp;{{#if:{{{next|}}}|[[{{{next|}}}]]|}} {{!}}- !left {{!}}&nbsp;{{#if:{{{leftContent|}}}|{{{leftContent|}}}|}} {{!}}- !right {{!}}&nbsp;{{#if:{{{rightContent|}}}|{{{rightContent|}}}|}} {{!}}- !text {{!}}&nbsp;{{#if:{{{text|}}}|{{{text|}}}|}} {{!}}- !notes {{!}}&nbsp;{{#if:{{{notes|}}}|{{{notes|}}}|}} {{!}}- !print {{!}}&nbsp;{{#if:{{{print|}}}|{{{print|}}}|}} {{!}}- !template {{!}}&nbsp;{{#if:{{{template|}}}|{{{template|}}}|}} {{!}}- !state {{!}}&nbsp;{{#if:{{{state|}}}|{{{state|}}}|}} {{!}}- !comment {{!}}&nbsp;{{#if:{{{comment|}}}|{{{comment|}}}|}} {{!}}- !presentation {{!}}&nbsp;{{#if:{{{presentation|}}}|[[{{{presentation|}}}]]|}} {{!}}- {{!}}} }} }} }} [[Category:Slide]]</includeonly> f6da2ffe7fbdd35eed7d6eda8ad3af1896b13edb File:Anforderungen im Rahmen der Konzeption erheben.png 6 216 430 2017-11-05T18:06:16Z Wf 1 File uploaded with MsUpload wikitext text/x-wiki File uploaded with MsUpload a655f04485ff507c02499d137d22a0d3e0ea32c2 Template:Languagelink 10 217 431 2017-11-05T18:06:16Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:16Z wikitext text/x-wiki <noinclude> {{TemplateSequence |prev=Template:Language |next=Template:Link }} From http://semantic-mediawiki.org/wiki/Template:Languagelink This template creates a link to another page (parameter 1), using the language code as a link text (parameter 2). Flags can be shown by defining suitable styles for the span classes <code>lang-LANGCODE</code> (using [[MediaWiki:Common.css]]). Languages with special styles currently are: * <span class="lang-zh-hans">Chinese (simplified)</span> * <span class="lang-nl">Dutch</span> * <span class="lang-en">English</span> * <span class="lang-fr">French</span> * <span class="lang-de">German</span> * <span class="lang-ja">Japanese</span> * <span class="lang-ru">Russian</span> * <span class="lang-es">Spanish</span> * <span class="lang-uk">Ukrainian</span> </noinclude><span style="text-transform: uppercase;" class="lang-{{{2}}}">[[{{{1}}}|{{{2}}}]]</span> [[Category:Translations]] [[Category:Template]] df72d579efb62061aa75770bf99db9a1cbb36355 Property:Link target 102 218 432 2017-11-05T18:06:16Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:16Z wikitext text/x-wiki This property is used by the template {{Link|target=Template:Link}}. It has the type [[Has type::text]] which can be a page or an URL 67b4fa0b01d28d004be039eb9698ca89f625afc8 Property:Link targetPage 102 219 433 2017-11-05T18:06:17Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:17Z wikitext text/x-wiki This property is used by the template {{Link|target=Template:Link}}. It has the type [[Has type::page]] 3676163b1a7109eeafe86e74a05771ce014b3b95 Property:Link targetUrl 102 220 434 2017-11-05T18:06:17Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:17Z wikitext text/x-wiki This property is used by the template {{Link|target=Template:Link}}. It has the type [[Has type::url]] 3e3ded497e524c6d3ea5d94199fc6b7d7efdedac Property:Link title 102 221 435 2017-11-05T18:06:17Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:17Z wikitext text/x-wiki This property is used by the template {{Link|target=Template:Link}}. It has the type [[Has type::text]] 8f65f7e2d3b8a20bc24187d6fdc9d948e2936098 Property:Property nullable 102 222 436 2017-11-05T18:06:18Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:17Z wikitext text/x-wiki {{Property |name=nullable |label=allow nulls? |documentation=should nullvalues be allowed and value set to NULL when empty? |type=Special:Types/Boolean |index=18 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue=false |inputType= |allowedValues= |values_from= |showInGrid=false |isLink=false |topic=Concept:Property |storemode=property }} [[Has type::Boolean]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 4baaf80e91228591dbf59b928c29c7523a2a4e91 Property:SMW Type id 102 223 437 2017-11-05T18:06:18Z Wf 1 transfered by WikiBackup wikiTask at 2017-11-05T18:06:18Z wikitext text/x-wiki {{Property |name=id |label=id |documentation=SMW internal id of the type |type=Special:Types/Text |index=3 |sortPos= |primaryKey=false |mandatory=false |namespace= |size= |uploadable=false |defaultValue= |inputType= |allowedValues= |values_from= |showInGrid=true |isLink=false |topic=Concept:SMW_Type |storemode=property }} [[Has type::Text]] This is a Property with type {{#show: {{FULLPAGENAMEE}} | ?Property type#- }} 36456b9d6837c996152a05e31c60142ad0c253b1 MediaWiki:Common.css 8 186 438 274 2017-11-05T18:17:33Z Wf 1 css text/css /* CSS placed here will be applied to all skins */ /** BITPlan **/ div.bitplanorange { margin-top: 0.4cm; font-size: 125%; color: rgb(255, 128, 0); margin-bottom: 0.0cm; } .externalimage-holder { position: relative; } .externalimage-holder img { width: 100%; height: auto; } dc3fcf3246d71b56d77093eadec9fae015cf9cf4 Docker 0 17 439 64 2019-01-02T17:22:02Z Wf 1 wikitext text/x-wiki {{Tool |name=Docker |logo=File:DockerLogo.png |logourl=https://www.docker.com/sites/all/themes/docker/assets/images/logo.png |website=https://www.docker.com/ |wikipediaurl=https://en.wikipedia.org/wiki/Docker_%28software%29 |stackoverflow=http://stackoverflow.com/questions/tagged/docker |stackoverflowQuestionCount=49,616 |category=Build |storemode=property }} {{GlossaryEntry |since=2015/09/25 |description={{Link|target=https://www.docker.com/|title=Docker}} ''is an open platform for building, shipping and running distributed applications. It gives programmers, development teams and operations engineers the common toolbox they need to take advantage of the distributed and networked nature of modern applications.'' |references=https://www.docker.com |lang=en |master=Docker |storemode=property }} == Virtual Machine versus Container == http://i.imgur.com/MJHfm1c.jpg == Introduction to Docker by {{Link|target=Solomon Hykes}} == <youtube>Q5POuMHxW-0</youtube> * Shipping code to the server is too hard * Docker uses separation of concerns (just like the Y-principle) to make shipping easier * Docker images are manipulated git style with ids, diffs, commits, pushs and pulls == Links == * https://twitter.com/docker == Installation == === Installation of Docker on Mac OS X === * https://docs.docker.com/installation/mac/ # Download Docker Toolbox # Install (e.g. DockerToolbox-1.8.3.pkg) # Either Use Kitematic Visual Management for Docker or Docker Quickstart Terminal Command Line Interface [[File:Clipboard20151017102651.png]] <source lang='bash'> ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ docker is configured to use the default machine with IP 192.168.99.100 For help getting started, check out the docs at https://docs.docker.com </source> === Installation of Docker on Linux === * see https://docs.docker.com/installation/ubuntulinux/ == Docker command examples == upgrade docker machine <pre> docker-machine upgrade default </pre> list running docker processes <pre> bash-3.2$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES </pre> get and start the latest ubuntu image <pre> docker run ubuntu </pre> see which images are available <pre> bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest 0a17decee413 4 days ago 188.4 MB bash-3.2$ </pre> start a bash shall in ubuntu <source lang='bash'> docker run -i -t ubuntu /bin/bash </source> modify the image by creating new directory <source lang='bash'> root@84506e084bb9:/#touch /test </source> look at processes again and check the difference of the image with the given container id <source lang='bash'> bash-3.2$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84506e084bb9 ubuntu "/bin/bash" 2 minutes ago Up 2 minutes pensive_wozniak bash-3.2$ docker diff 84506e084bb9 A /test </source> install some software <source lang='bash'> root@84506e084bb9:/#apt-get install php5 root@84506e084bb9:/#apt-get install mysql-server </source> commit the changes to images with the name "lamp" and check the image list again <source lang='bash'> bash-3.2$ docker commit 84506e084bb9 lamp 8ba719cd9b0eae589b70f6b6ddd567b4c20f997fc2d8f4c6feb313d73c2d5c3a bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE lamp latest 8ba719cd9b0e 20 seconds ago 349.5 MB ubuntu latest 0a17decee413 4 days ago 188.4 MB bash-3.2$ </source> <source lang='bash'> docker version Client: Version: 1.8.3 API version: 1.20 Go version: go1.4.2 Git commit: f4bf5c7 Built: Mon Oct 12 18:01:15 UTC 2015 OS/Arch: darwin/amd64 Server: Version: 1.8.3 API version: 1.20 Go version: go1.4.2 Git commit: f4bf5c7 Built: Mon Oct 12 18:01:15 UTC 2015 OS/Arch: linux/amd64 </source> == Useful scripts == {{Link|target=Docker goodies}} == Static content example == Use the nginx image from https://github.com/docker-library/docs/tree/master/nginx <source lang='bash'> docker run --name icon_html -v /Users/wf/Documents/workspace/com.bitplan.icons/src/main/resources/com/bitplan/icons:/usr/share/nginx/html:ro -d -p 8080:80 nginx </source> find out the ip address for the mapping (Mac OS X) <source lang='bash'> docker-machine env default export DOCKER_HOST="tcp://192.168.99.100:2376" </source> try out via <pre>http://192.168.99.100:8080/48x48/shadow/wrench.png</pre>http://192.168.99.100:8080/48x48/shadow/wrench.png == Dockerfile == The process can be automated using a {{Link|target=Dockerfile}} == Critics == http://www.boycottdocker.org/ == Docker book == <pdf>http://dockerbook.com/TheDockerBook_sample.pdf</pdf> [[Category:Examples]] 5283f5ea95fc5b545bae3aacd23948edb2186454 443 439 2019-01-05T14:25:13Z Wf 1 /* Critics */ wikitext text/x-wiki {{Tool |name=Docker |logo=File:DockerLogo.png |logourl=https://www.docker.com/sites/all/themes/docker/assets/images/logo.png |website=https://www.docker.com/ |wikipediaurl=https://en.wikipedia.org/wiki/Docker_%28software%29 |stackoverflow=http://stackoverflow.com/questions/tagged/docker |stackoverflowQuestionCount=49,616 |category=Build |storemode=property }} {{GlossaryEntry |since=2015/09/25 |description={{Link|target=https://www.docker.com/|title=Docker}} ''is an open platform for building, shipping and running distributed applications. It gives programmers, development teams and operations engineers the common toolbox they need to take advantage of the distributed and networked nature of modern applications.'' |references=https://www.docker.com |lang=en |master=Docker |storemode=property }} == Virtual Machine versus Container == http://i.imgur.com/MJHfm1c.jpg == Introduction to Docker by {{Link|target=Solomon Hykes}} == <youtube>Q5POuMHxW-0</youtube> * Shipping code to the server is too hard * Docker uses separation of concerns (just like the Y-principle) to make shipping easier * Docker images are manipulated git style with ids, diffs, commits, pushs and pulls == Links == * https://twitter.com/docker == Installation == === Installation of Docker on Mac OS X === * https://docs.docker.com/installation/mac/ # Download Docker Toolbox # Install (e.g. DockerToolbox-1.8.3.pkg) # Either Use Kitematic Visual Management for Docker or Docker Quickstart Terminal Command Line Interface [[File:Clipboard20151017102651.png]] <source lang='bash'> ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ docker is configured to use the default machine with IP 192.168.99.100 For help getting started, check out the docs at https://docs.docker.com </source> === Installation of Docker on Linux === * see https://docs.docker.com/installation/ubuntulinux/ == Docker command examples == upgrade docker machine <pre> docker-machine upgrade default </pre> list running docker processes <pre> bash-3.2$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES </pre> get and start the latest ubuntu image <pre> docker run ubuntu </pre> see which images are available <pre> bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest 0a17decee413 4 days ago 188.4 MB bash-3.2$ </pre> start a bash shall in ubuntu <source lang='bash'> docker run -i -t ubuntu /bin/bash </source> modify the image by creating new directory <source lang='bash'> root@84506e084bb9:/#touch /test </source> look at processes again and check the difference of the image with the given container id <source lang='bash'> bash-3.2$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84506e084bb9 ubuntu "/bin/bash" 2 minutes ago Up 2 minutes pensive_wozniak bash-3.2$ docker diff 84506e084bb9 A /test </source> install some software <source lang='bash'> root@84506e084bb9:/#apt-get install php5 root@84506e084bb9:/#apt-get install mysql-server </source> commit the changes to images with the name "lamp" and check the image list again <source lang='bash'> bash-3.2$ docker commit 84506e084bb9 lamp 8ba719cd9b0eae589b70f6b6ddd567b4c20f997fc2d8f4c6feb313d73c2d5c3a bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE lamp latest 8ba719cd9b0e 20 seconds ago 349.5 MB ubuntu latest 0a17decee413 4 days ago 188.4 MB bash-3.2$ </source> <source lang='bash'> docker version Client: Version: 1.8.3 API version: 1.20 Go version: go1.4.2 Git commit: f4bf5c7 Built: Mon Oct 12 18:01:15 UTC 2015 OS/Arch: darwin/amd64 Server: Version: 1.8.3 API version: 1.20 Go version: go1.4.2 Git commit: f4bf5c7 Built: Mon Oct 12 18:01:15 UTC 2015 OS/Arch: linux/amd64 </source> == Useful scripts == {{Link|target=Docker goodies}} == Static content example == Use the nginx image from https://github.com/docker-library/docs/tree/master/nginx <source lang='bash'> docker run --name icon_html -v /Users/wf/Documents/workspace/com.bitplan.icons/src/main/resources/com/bitplan/icons:/usr/share/nginx/html:ro -d -p 8080:80 nginx </source> find out the ip address for the mapping (Mac OS X) <source lang='bash'> docker-machine env default export DOCKER_HOST="tcp://192.168.99.100:2376" </source> try out via <pre>http://192.168.99.100:8080/48x48/shadow/wrench.png</pre>http://192.168.99.100:8080/48x48/shadow/wrench.png == Dockerfile == The process can be automated using a {{Link|target=Dockerfile}} == Critics == * http://www.boycottdocker.org/ * https://thehftguy.com/2016/11/01/docker-in-production-an-history-of-failure/ * https://github.com/moby/moby/issues/23203 == Docker book == <pdf>http://dockerbook.com/TheDockerBook_sample.pdf</pdf> [[Category:Examples]] 59602e69f0d8567f707c269c06625e389f2c52a2 444 443 2019-01-05T14:40:18Z Wf 1 /* Critics */ wikitext text/x-wiki {{Tool |name=Docker |logo=File:DockerLogo.png |logourl=https://www.docker.com/sites/all/themes/docker/assets/images/logo.png |website=https://www.docker.com/ |wikipediaurl=https://en.wikipedia.org/wiki/Docker_%28software%29 |stackoverflow=http://stackoverflow.com/questions/tagged/docker |stackoverflowQuestionCount=49,616 |category=Build |storemode=property }} {{GlossaryEntry |since=2015/09/25 |description={{Link|target=https://www.docker.com/|title=Docker}} ''is an open platform for building, shipping and running distributed applications. It gives programmers, development teams and operations engineers the common toolbox they need to take advantage of the distributed and networked nature of modern applications.'' |references=https://www.docker.com |lang=en |master=Docker |storemode=property }} == Virtual Machine versus Container == http://i.imgur.com/MJHfm1c.jpg == Introduction to Docker by {{Link|target=Solomon Hykes}} == <youtube>Q5POuMHxW-0</youtube> * Shipping code to the server is too hard * Docker uses separation of concerns (just like the Y-principle) to make shipping easier * Docker images are manipulated git style with ids, diffs, commits, pushs and pulls == Links == * https://twitter.com/docker == Installation == === Installation of Docker on Mac OS X === * https://docs.docker.com/installation/mac/ # Download Docker Toolbox # Install (e.g. DockerToolbox-1.8.3.pkg) # Either Use Kitematic Visual Management for Docker or Docker Quickstart Terminal Command Line Interface [[File:Clipboard20151017102651.png]] <source lang='bash'> ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ docker is configured to use the default machine with IP 192.168.99.100 For help getting started, check out the docs at https://docs.docker.com </source> === Installation of Docker on Linux === * see https://docs.docker.com/installation/ubuntulinux/ == Docker command examples == upgrade docker machine <pre> docker-machine upgrade default </pre> list running docker processes <pre> bash-3.2$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES </pre> get and start the latest ubuntu image <pre> docker run ubuntu </pre> see which images are available <pre> bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest 0a17decee413 4 days ago 188.4 MB bash-3.2$ </pre> start a bash shall in ubuntu <source lang='bash'> docker run -i -t ubuntu /bin/bash </source> modify the image by creating new directory <source lang='bash'> root@84506e084bb9:/#touch /test </source> look at processes again and check the difference of the image with the given container id <source lang='bash'> bash-3.2$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84506e084bb9 ubuntu "/bin/bash" 2 minutes ago Up 2 minutes pensive_wozniak bash-3.2$ docker diff 84506e084bb9 A /test </source> install some software <source lang='bash'> root@84506e084bb9:/#apt-get install php5 root@84506e084bb9:/#apt-get install mysql-server </source> commit the changes to images with the name "lamp" and check the image list again <source lang='bash'> bash-3.2$ docker commit 84506e084bb9 lamp 8ba719cd9b0eae589b70f6b6ddd567b4c20f997fc2d8f4c6feb313d73c2d5c3a bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE lamp latest 8ba719cd9b0e 20 seconds ago 349.5 MB ubuntu latest 0a17decee413 4 days ago 188.4 MB bash-3.2$ </source> <source lang='bash'> docker version Client: Version: 1.8.3 API version: 1.20 Go version: go1.4.2 Git commit: f4bf5c7 Built: Mon Oct 12 18:01:15 UTC 2015 OS/Arch: darwin/amd64 Server: Version: 1.8.3 API version: 1.20 Go version: go1.4.2 Git commit: f4bf5c7 Built: Mon Oct 12 18:01:15 UTC 2015 OS/Arch: linux/amd64 </source> == Useful scripts == {{Link|target=Docker goodies}} == Static content example == Use the nginx image from https://github.com/docker-library/docs/tree/master/nginx <source lang='bash'> docker run --name icon_html -v /Users/wf/Documents/workspace/com.bitplan.icons/src/main/resources/com/bitplan/icons:/usr/share/nginx/html:ro -d -p 8080:80 nginx </source> find out the ip address for the mapping (Mac OS X) <source lang='bash'> docker-machine env default export DOCKER_HOST="tcp://192.168.99.100:2376" </source> try out via <pre>http://192.168.99.100:8080/48x48/shadow/wrench.png</pre>http://192.168.99.100:8080/48x48/shadow/wrench.png == Dockerfile == The process can be automated using a {{Link|target=Dockerfile}} == Critics == * http://www.boycottdocker.org/ * https://thehftguy.com/2016/11/01/docker-in-production-an-history-of-failure/ * https://github.com/moby/moby/issues/23203 * https://www.reddit.com/r/docker/comments/8n7app/the_joy_of_containers_virtualisation_and/ == Docker book == <pdf>http://dockerbook.com/TheDockerBook_sample.pdf</pdf> [[Category:Examples]] a232801422815c038f28649c6f8e16f84d33750d Main Page 0 1 440 300 2019-01-03T06:29:06Z Wf 1 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right|link=http://www.bitplan.com/ProfiWiki]] === What is a [[ProfiWiki]] ?=== * Structured and unstructured content * Easy search * Quick data entry and linking * Team collaboration === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|100px]] ==== Make the ProfiWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] bfed656a1a92f1b8c1ae4551a3063cede845c511 441 440 2019-01-03T06:29:42Z Wf 1 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right|link=http://www.bitplan.com/ProfiWiki]] === What is a [http://www.bitplan.com/ProfiWiki ProfiWiki] ?=== * Structured and unstructured content * Easy search * Quick data entry and linking * Team collaboration === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|100px]] ==== Make the ProfiWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px]] ac1b2201eae112493f56b3bf116b5b1c57366776 442 441 2019-01-03T06:30:28Z Wf 1 wikitext text/x-wiki __NOTOC__ [[File:Profiwikiicon.png|256px|right|link=http://www.bitplan.com/ProfiWiki]] === What is a [http://www.bitplan.com/ProfiWiki ProfiWiki] ?=== * Structured and unstructured content * Easy search * Quick data entry and linking * Team collaboration === The ProfiWiki layer cake recipe === ==== Ingredients ==== * 1 small {{Link|target=Docker}} [[File:DockerLogo.png|218px]] * 1 decent {{Link|target=http://www.mediawiki.org|title=MediaWiki}} [[File:MediaWikiLogo.png|100px]] * 1 nice dose of {{Link|target=http://semantic-mediawiki.org/wiki/Semantic_MediaWiki|title=Semantic MediaWiki}} [[File:SemanticMediaWikiLogo.png|100px]] ==== Make the ProfiWiki cake ==== Follow the instructions at {{Link|target=https://github.com/BITPlan/docker-semanticmediawiki|title=docker-semanticmediawiki}}[[File:Profiwikiicon.png|128px|link=http://www.bitplan.com/ProfiWiki]] c51abc88a39f80402c14d9bc631f6ab256b88e6b smw/schema:Group:Schema properties 112 224 447 2022-02-05T15:23:14Z 127.0.0.1 0 Semantic MediaWiki group import smw/schema application/json { "type": "PROPERTY_GROUP_SCHEMA", "groups": { "schema_group": { "canonical_name": "Schema properties", "message_key": "smw-property-group-label-schema-group", "property_keys": [ "_SCHEMA_TYPE", "_SCHEMA_DEF", "_SCHEMA_DESC", "_SCHEMA_TAG", "_SCHEMA_LINK", "_FORMAT_SCHEMA", "_CONSTRAINT_SCHEMA", "_PROFILE_SCHEMA" ] } }, "tags": [ "group", "property group" ] } fdba38d9db40d0248af036f81b4b7fdb74f6170d smw/schema:Group:Predefined properties 112 225 448 2022-02-05T15:23:14Z 127.0.0.1 0 Semantic MediaWiki group import smw/schema application/json { "type": "PROPERTY_GROUP_SCHEMA", "groups": { "administrative_group": { "canonical_name": "Adminstrative properties", "message_key": "smw-property-group-label-administrative-properties", "property_keys": [ "_MDAT", "_CDAT", "_NEWP", "_LEDT", "_DTITLE", "_CHGPRO", "_EDIP", "_ERRC" ] }, "classification_group": { "canonical_name": "Classification properties", "message_key": "smw-property-group-label-classification-properties", "property_keys": [ "_INST", "_PPGR", "_SUBP", "_SUBC" ] }, "content_group": { "canonical_name": "Content properties", "message_key": "smw-property-group-label-content-properties", "property_keys": [ "_SOBJ", "_ASK", "_MEDIA", "_MIME", "_ATTCH_LINK", "_FILE_ATTCH", "_CONT_TYPE", "_CONT_AUTHOR", "_CONT_LEN", "_CONT_LANG", "_CONT_TITLE", "_CONT_DATE", "_CONT_KEYW", "_TRANS", "_TRANS_SOURCE", "_TRANS_GROUP" ] }, "declarative_group": { "canonical_name": "Declarative properties", "message_key": "smw-property-group-label-declarative-properties", "property_keys": [ "_TYPE", "_UNIT", "_IMPO", "_CONV", "_SERV", "_PVAL", "_LIST", "_PREC", "_PDESC", "_PPLB", "_PVAP", "_PVALI", "_PVUC", "_PEID", "_PEFU" ] } }, "tags": [ "group", "property group" ] } 8536eb8767d6dc5a87a0b4f7791b9cd791acbd75